Что такое хороший метод для вставки в кусочные данные? - PullRequest
0 голосов
/ 23 марта 2012

У меня есть локальный HTTP-прокси, который я использую для вставки скриптов в заголовок HTML, полученный с удаленных серверов. Достаточно просто со стандартным потоком HTTP, но когда передача кодируется по частям, необходимо выполнить больше анализа.

Метод, который я имею в виду, кажется несколько запутанным:

  1. Разобрать входящие данные для <head>
  2. Разобрать в обратном направлении от <head> и найти шестнадцатеричное значение в начале фрагмента (возможно, перед точкой с запятой).
  3. Добавить размер введенных данных в шестнадцатеричное значение.
  4. Вставить внедренный скрипт после <head>.
  5. Переслать измененную строку клиенту (браузеру).

Будет ли это работать? (Я собираюсь выбить код, чтобы узнать) Есть ли лучший способ?

1 Ответ

2 голосов
/ 23 марта 2012

Это не сработает, потому что нет гарантии, что полный тег <head> будет внутри одного чанка. Это может пересечь границу между кусками. Вам нужно правильно проанализировать сами фрагменты HTTP, буферизуя любые данные внутри них, чтобы вы могли анализировать их отдельно. Читайте входящие чанки до тех пор, пока вы не буферизируете полный тег <head>, затем внедрите свой скрипт по мере необходимости, выведите новый чанк, содержащий ваши буферизованные данные и скрипт, а затем передайте все последующие чанки как есть.

...