Я делаю HTTP-прокси в C ++; когда клиент отправляет GET
или же CONNECT
При запросе к прокси прокси анализирует HTTP-заголовок пакета, разрешает имя хоста в нем, открывает еще один сокет для пункта назначения сервера и отправляет запрос клиента. Затем прокси отправит ответ сервера клиенту.
Вот GET
а также CONNECT
запросы от клиента, отправленные прокси на сервер:
GET http://www.gstatic.com/generate_204 HTTP/1.1
CONNECT cr-input.getspeakit.com:443 HTTP/1.1
Но когда я разбираю GET
В ответ с сервера я нахожу код состояния 400, т.е. Bad Request
: вроде бы (из Википедии):
неправильно сформированный синтаксис запроса, неверное формирование сообщения запроса или вводящая в заблуждение маршрутизация запроса.
Я отправляю неправильные аргументы на сервер в GET
запрос?
ПОЛУЧИТЬ. Синтаксис не неправильный, но если запрос не был сфальсифицирован вами и он действительно переходит на www.gstatic.com, вы можете проверить, генерирует ли 40-кратный код состояния любой тип запросов. Это домен, используемый для Google для разгрузки статического контента. Является ли это все еще так и почему он возвращает 40x для запросов. Перейти в Google.
CONNECT. Если вы пересылаете CONNECT на сервер, это неправильно. CONNECT предназначен для открытия сквозного двоичного соединения в обход вашего прокси. Последовательность будет:
Других решений пока нет …