Я программирую какой-то браузер на c ++, используя winsock, и меня поразила какая-то ошибка. Программа отлично работает для некоторых страниц в Интернете, но по некоторым причинам она не работает для всех из них.
https://imageshack.com/a/v56q/1
Как видно на этих изображениях, составленная версия Fiddler работает, когда моя собственная программа не работает.
Я подумал, что, возможно, проблема в HTTPS-соединении, но ему даже не нужно рукопожатие или что-то подобное. Отправляющая часть программы, конечно, не является проблемой, потому что она работает с другими страницами (например, в комментариях).
Заранее спасибо!
Я подумал, что, возможно, проблема в HTTPS-соединении, но ему даже не нужно рукопожатие или что-то подобное.
Да, HTTPS требует, чтобы вы выполнили довольно сложное рукопожатие, поэтому по сути никто не пытается реализовать HTTPS непосредственно в сокетах, а вместо этого использует WinHTTP или WinINET, два стека HTTP, включенные в Windows.
Пока Fiddler запущен, вы можете «обмануть», отправив свой запрос в виде открытого текста (содержащий URL-адрес HTTPS) в Fiddler, который затем выполнит правильное безопасное рукопожатие с удаленным сервером от вашего имени и затем вернет ответ вашему клиенту. (Скрипач действует как Шлюз HTTP-HTTPS в этом сценарии.
Других решений пока нет …