Подтвердить что ты не робот

Протокол квитирования протокола Socket vs.

В чем разница между этими двумя статусами ответа:

HTTP/1.1 101 Web Socket Protocol Handshake

HTTP/1.1 101 Switching Protocols

Имеет ли значение, какой я получу?

4b9b3361

Ответ 1

Нет никакой разницы. Важно, чтобы код ответа 101 указывал на то, что рукопожатие прогрессирует. Это определено в RFC 6455:

Ведущая строка от клиента соответствует формату Request-Line. Ведущая строка с сервера соответствует формату "Строка состояния" . Операции "Запрос-строка" и "Строка-строка" определены в [RFC2616].

...

Рукопожатие с сервера намного проще, чем клиентское рукопожатие. Первая строка - это строка состояния HTTP, с кодом состояния 101:

HTTP/1.1 101 Переключение протоколов

Любой код состояния, отличный от 101, указывает, что квитирование WebSocket не завершено и что семантика HTTP по-прежнему применяется.

Текст Status-Line произволен, сервер может использовать любой текст, который он хочет, за RFC 2616:

Status-Line = HTTP-версия SP Status-Code SP Reason-Phrase CRLF

...

Элемент Status-Code представляет собой трехзначный целочисленный код результата попытки понять и удовлетворить запрос. Эти коды полностью определены в разделе 10. Фраза разума предназначена для краткого текстового описания кода состояния. Код состояния предназначен для использования автоматами, а Фраза разума предназначена для пользователя. Клиенту не требуется проверять или отображать фразу разума.

Switching Protocols просто случается, что используют примеры из RFC 6455, но это не является обязательным требованием.