Изменяют ли прокси-серверы HTTP пакеты запросов?

добавлен или изменен ли заголовок запроса к HTTP-запросу перед пересылкой на сервер прокси-сервером?

Если да, то выполняются ли изменения в тех же пакетах или содержимое используется для создания новых пакетов запросов с изменениями?

1 ответов


есть несколько различных типов proxy серверов. Поскольку вы упомянули заголовки запросов, я предполагаю, что вы говорите о HTTP-прокси-серверах, которые пересылают HTTP-запросы, а не пакеты.

Примечание: в частном случае HTTPS-запросы (TLS/SSL через CONNECT), прокси-серверы будет просто переслать содержимое пакетов TCP (и не могут проверить пакеты, если не действуют как человек-в-середине прокси-сервер).


конечно, это зависит от прокси-программного обеспечения и его конфигурации, но HTTP-прокси ожидается следовать W3C рекомендации по преобразованию веб-контента Прокси, в которой говорится, много вещей, но наиболее уместно:

  • кроме как конвертировать между HEAD и GET прокси не должны изменять запрос методы.

  • если запрос содержит тег Cache-Control: no-transform директива, прокси не должны изменять запрос, кроме как в соответствии с прозрачным поведением HTTP, определенным в разделах RFC 2616 HTTP раздел 14.9.5 и раздел 13.5.2, и добавлять поля заголовка, как описано в 4.1.6 дополнительные поля заголовка HTTP.

  • кроме изменений, требуемых RFC 2616 HTTP прокси не должны изменять значения полей заголовка, кроме the User-Agent, Accept, Accept-Charset, Accept-Encoding и Accept-Language поля заголовка и не должны удалять поля заголовка.

  • Прокси должны добавить IP-адрес инициатора запроса в конец списка, разделенного запятыми в X-Forwarded-For поле заголовка HTTP.

  • Прокси должны (в соответствии с RFC 2616) включать Via поле заголовка HTTP.


в общем, вы можете ожидать эти HTTP-заголовки должны быть изменены / добавлены совместимым со стандартами прокси-сервером:

  • User-Agent
  • Accept
  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • X-Forwarded-For
  • Via