跳到内容

HTML5客户端:Websockets和XHR之间有什么区别?

Websockets 是一种持久连接,可以用来接收/发送数据而不需要顺序和不需要 http 头。

Xhr-polling 创建新请求并带有 http 头,等待带有 http 头的答案,同时保持顺序。

这样,XHR 数据流总是看起来像这样:

HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER 以及其他内容

在下载数据之前,必须通过 HTTP_HEADER 请求,因此它的名称是:xhr-polling。

Websockets 数据流可能看起来像这样:

FRAME_DATA_SEND FRAME_DATA_SEND FRAME_DATA_RECEIVE FRAME_DATA_SEND FRAME_DATA_RECEIVE FRAME_DATA_RECEIVE

此外,它是随机数据的发送/接收,没有特殊的顺序,也没有任何http头数据。

这使得由于大多数已知反向代理缺乏对Websockets的支持,使用反向代理变得不可能;但一半的xhr传输可能与Apache反向代理一起工作。

另请参阅: HTML5客户端:支持的浏览器