Chrome в настоящее время реализует draft-hixie-thewebsocketprotocol-76 , который также известен как draft-ietf-hybi-thewebsocketprotocol-03 . Протокол и спецификации в настоящее время публикуются рабочей группой IETF HyBi, поэтому нумерация 03 на самом деле более правильная, и следующие версии спецификации будут продолжать эту нумерацию (но большинство людей все еще называют ее v76).
Рукопожатие, которое вы получаете от Chrome-8.0.552, соответствует спецификации. Различия заключаются в том, что порядок заголовков может различаться, и ключи будут иметь разные значения для каждого нового соединения, а значения хоста, источника, пути и протокола зависят от того, как Javascript вызывает соединение, а также зависят от URL вызывающего стр.
Ответ будет выглядеть примерно так (хотя не совсем потому, что ответ генерируется на основе рукопожатия клиента):
HTTP/1.1 101 WebSocket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Origin: http://example.com
Sec-WebSocket-Location: ws://example.com/demo
Sec-WebSocket-Protocol: sample
8jKS'y:G*Co,Wxa-
Я следил за рабочей группой HyBi, и пока неизвестно, когда будет завершен протокол. Тем не менее, уже опубликован новый проект (04), в котором рассматриваются проблемы безопасности поставщиков браузеров. (05) версия, вероятно, будет опубликована в ближайшие несколько недель. Поставщики браузеров, вероятно, не будут внедрять 04 (потому что все еще существуют значительные области с низким консенсусом). Если большинство поставщиков браузеров примут 05 и не возникнут дополнительные проблемы с безопасностью, я подозреваю, что окончательная версия протокола не сильно изменится оттуда.
Важно отметить, однако, что API браузера для WebSockets, скорее всего, не будут затронуты изменениями в протоколе.