使用WebSockets时为什么会收到HTTP请求?

时间:2013-01-08 07:40:12

标签: html5 websocket

我用JavaScript编写了一个vanilla WebSocket客户端,通过8080端口连接到本地主机,并发出' hello server '。

我的服务器使用标准套接字包在Python中运行。当我使用WebSocket连接到它时,服务器会收到HTTP请求:

GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: 127.0.0.1:8080
Origin: http://127.0.0.1:3030
Pragma: no-cache
Cache-Control: no-cache
Sec-WebSocket-Key: g3y2hDw5WpZYKUwIrsGYaw==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: x-webkit-deflate-frame

...并且它没有收到原本应该由WebSocket连接发送的 'hello服务器' 消息。

我很困惑;常规套接字和WebSockets不是一回事吗?为什么我得到HTTP请求而不是原始消息?

1 个答案:

答案 0 :(得分:0)

简而言之,没有任何网络套接字不仅仅是套接字。它们是TCP之上的一种新的类似http的协议。有关详细信息,请查看http://en.wikipedia.org/wiki/WebSocket以获取简要概述或RFC http://tools.ietf.org/html/rfc6455