Прокси-серверы HTTP изменяют пакеты запросов? - программирование
Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

ПРИМЕЧАНИЕ: В специальном случае HTTPS-запросы (TLS/SSL через CONNECT), прокси-сервер будет просто перенаправлять содержимое пакетов TCP (и не может проверять пакеты, не действуя как man-in-the-middle прокси).


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

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

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

  • Помимо модификаций, требуемых прокси-серверами RFC 2616 HTTP, не следует изменять значения полей заголовка, отличных от полей заголовка 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