Обновление запроса сервера протокола HTTPS.
Поэтому я пытаюсь построить сервер HTTPS в Java без использования SocketChannels и SSLEngine. Моя главная причина в том, что когда я собирал с использованием пакета com.sun и тестировал его, истекло много запросов, и если они ответили, они заняли около 2 минут (в обработчиках отладчика это заняло бы 2 минуты), я построил HTTP-сервер и получил запрос на снижение до 200 мс, но мне нужен HTTPS, и когда я добавил SSLEngine и развернул запрос, он выглядел как обычный заголовок для HTTP, запрос выглядел так:
GET / HTTP/1.1
Host: localhost
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
DNT: 1
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8
Исходя из этого, кажется, что запрос не использует HTTPS (также Chrome говорит, что веб-сайт не является безопасным) и не запрашивает обновление. Как мне сказать клиенту обновить? На всех страницах, которые я прочитал, клиент должен запросить обновление, и если я попытался отправить заголовок кода 426 (требуется обновление), сервер просто закроет соединение и покажет сообщение, которое я отправил вместе с ним.
1 ответ
Ответ прост, сертификаты localhost недействительны, я сделал сертификат для своего веб-сайта и провел внешнее тестирование и смог получить правильный ответ. Насколько я знаю, сервер не может запрашивать у клиента изменения протоколов 100% времени.