Вот что я мог понять: эти новые поля предназначены для предотвращения кросс-протокольных атак.Предположим, что какой-то вредоносный JavaScript-код работает в веб-браузере, пытаясь подключиться к не HTTP, не к WebSocket серверам (например, FTP, telnet, SSH).В черновике 75 рукопожатие состояло только из того, что клиент отправил заголовок рукопожатия WebSocket, а сервер ничего не ответил.После этого клиент может отправлять сообщения \x00...\xFF
в рамке.Таким образом, вредоносный код JavaScript в клиенте мог бы подключиться к не-WebSocket-серверу (например, telnet), попытаться войти в систему и выполнить там команды.После ввода Sec-WebSocket-Key1 попытка подключения через WebSocket завершится неудачно, если сервер не вернет контрольную сумму MD5 Sec-WebSocket-Key1 и т. Д. Принудительное использование не-WebSocket (например,серверу telnet) сделать это практически невозможно, тем более что код JavaScript не контролирует Sec-WebSocket-Key1 и т. д.