Доброго времени суток!
Сегодня столкнулся с проблемой. Есть сервер, который обрабатывает подключения через web sockets. При установке соединения мозила делает два запроса, первый это собственно handshake, сервер ей отвечает, а вот дальше она зачем-то закрывает текущее подключение, открывает новое и шлёт туда вот такое:
и всё бы ничего, если всё происходило в рамках одного подключения. Но нет, она его закрывает и открывает новое. Соответственно определить что это за ерунда пришла и откуда никак. Хром таким не страдает. Кто знает зачем мозила делает такую вещь? Я что-то упустил в протоколе?
Запросы:
[{<<"Host">>,<<"host.ru:111">>},
{<<"User-Agent">>,
<<"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0">>},
{<<"Accept">>,
<<"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8">>},
{<<"Accept-Language">>,<<"ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3">>},
{<<"Accept-Encoding">>,<<"gzip, deflate">>},
{<<"Sec-WebSocket-Version">>,<<"13">>},
{<<"Origin">>,<<"http://host2.ru">>},
{<<"Sec-WebSocket-Extensions">>,<<"permessage-deflate">>},
{<<"Sec-WebSocket-Key">>,<<"IsoYCcUHGPU/+m1A72/Mxw==">>},
{<<"Cookie">>,
<<"">>},
{<<"Connection">>,<<"keep-alive, Upgrade">>},
{<<"Pragma">>,<<"no-cache">>},
{<<"Cache-Control">>,<<"no-cache">>},
{<<"Upgrade">>,<<"websocket">>}]
ответ сервера: <<"HTTP/1.1 101 Switching Protocols\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: Cv69Tz3lk8p3p6vGupJIE+pS7ws=\r\n\r\n">>
После этого мозила открывает новое соединение и шлёт туда:
[{<<"Host">>,<<"host.ru:111">>},
{<<"User-Agent">>,
<<"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0">>},
{<<"Accept">>,
<<"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8">>},
{<<"Accept-Language">>,<<"ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3">>},
{<<"Accept-Encoding">>,<<"gzip, deflate">>},
{<<"Referer">>,<<"http://host2.ru/">>},
{<<"Cookie">>,
<<"">>},
{<<"Connection">>,<<"keep-alive">>}]