所有分类
  • 所有分类
  • 未分类

Http,Socket,Websocket-区别

简介

本文介绍Http,Socket,Websocket的区别。

Socket是抽象层,在应用层与运输层中间。所以本文重点对比HTTP与Websocket。

Http与Websocket的对比

相同点

HttpWebsocket
相同点
所在层面应用层(调用Socket,基于TCP)应用层(模拟Socket,基于TCP)

不同点

HttpWebsocket
连接类型短连接(浏览器控制,页面无法控制)。长连接。 连接时间可编程,可永久连接(除非断网)。
通信方式客服端发起请求,服务端才响应。服务端不能主动联系客户端,只能由客户端发起。(单向        只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。         不用再次发起网络请求,它允许服务端主动向客户端推送数据
端口默认为8080默认情况下,Websocket协议使用80端口;运行在TLS之上时,默认使用443端口。

联系

WebSocket通过HTTP协议建立握手建立之后,使用TCP协议传输。

HTTP

短连接

在HTTP1.0中,客户端发送请求,服务器接收请求,双方建立连接,服务器响应资源,请求结束。

长连接

持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。

HTTP1.1开始,默认采用持久连接,使用了一种叫做keepalive connections 的机制。在传输数据后仍然保持连接,当客户端再次获取数据时,直接使用刚刚空闲下来的连接,而无需再次握手,低线路负载,提高传输速度。

Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。

长连接优势:减少了连接请求,降低TCP阻塞,减少了延迟,实时性较好。

长连接劣势:可能会影响性能,因为它在文件被请求之后还保持了不必要的连接很长时间。

Websocket

WebSocket连接的过程如下

  1. 首先,客户端发起http请求,经过3次握手后,建立起TCP连接;http请求里存放WebSocket支持的版本号等信息,如:Upgrade、Connection、WebSocket-Version等;
  2. 然后,服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据;
  3. 最后,客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信。
0

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录