В чем разница между "CONNECT" и "GET HTTPS"?

прежде чем перейти к реальному вопросу, поясню, как работает мой проект: для простоты мой прокси находится на моем ноутбуке, где также находится клиент (мой браузер); удаленный сервер будет, например, YouTube.

клиент подключен к определенному порту прокси благодаря плагину SwitchOmega: клиент хочет подключиться к www.youtube.com и прокси получает следующий запрос:

CONNECT www.youtube.com:443 HTTP/1.1
Host: www.youtube.com:443
Proxy-Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36

мне сказали, что когда прокси-сервер получает CONNECT запрос, должен открыть TCP-подключение к ip: Port, верните 200 OK сообщение клиенту и отправка данных до тех пор, пока одна сторона соединения не будет закрыта.

С другим плагином, который отслеживает HTTP-запросы, HTTP Trace, я вижу другой запрос в моем браузере:

GET https://www.youtube.com/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
and other data...

Итак, почему мой прокси получает CONNECT www.youtube.com:443 HTTP/1.1 пока трассировка HTTP GET https://www.youtube.com/? Они имеют в виду одно и то же?

14
задан Journeyman Geek
23.01.2023 19:23 Количество просмотров материала 2483
Распечатать страницу

2 ответа

CONNECT сделки с просьбой

CONNECT

метод CONNECT преобразует соединение запроса в прозрачный TCP / IP туннель, обычно для облегчения SSL-шифрованной связи (HTTPS)через незашифрованный HTTP прокси.

пока GET получает данные.

GET

метод GET запрашивает представление указанный ресурс. Запросы, использующие GET, должны только извлекать данные и иметь никакого другого эффекта. (Это также верно для некоторых других методов HTTP.) Тот W3C опубликовал руководящие принципы по этому различию, заявив:, "Дизайн веб-приложения должен основываться на вышеуказанных принципах, но и соответствующими ограничениями."

Source-Протокол Передачи Гипертекста

2
отвечен Ramhound 2023-01-25 03:11

Я думаю, что вы имеете дело с косметическая проблема.

GET https://www.youtube.com/ скорее всего, только то, что регистрируется, чтобы указать, что выборка производится с GET, и цель https://www.youtube.com.

нет стандартизированного способа поддержки прокси GET https:// URI, он был поставлен пару лет назад на IETF HTTP WG, но отброшен по разным причинам (проблемы доверия с прокси, в основном, если я помню)

очень маловероятно, что запрос отправлен прокси. Как другие говорили:CONNECT используется для подключения к www.youtube.com:443, тогда был бы какой-то другой запрос GET, который не содержит схему (протокол) или полномочия (сервер:порт и т. д.) части URI.

в вашем примере это будет:

GET / HTTP/1.1
host: www.youtube.com:443
0
отвечен Adrien 2023-01-25 05:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх