1.链接
1.1 长链接
http1.1以后默认使用长连接,响应头部会加入响应代码
Connection:keep-alive;
在使用长连接的时候,比如在使用网页的时候(如果是长连接的),那么在用户多次访问服务端的时候TCP链接不会关闭,会一直复用这个链接。
长连接也不是一直保持链接的,时间的设置来自于apache服务器的设定时间。
1.2 短链接
http1.0之前使用的是短连接,即一个点击就返回一个response,这次请求就回结束了。
1.3 对比
长连接 | 短连接 | |
---|---|---|
链接 | 链接可以复用 | 链接不可以复用 |
点击数 | 保持链接 | 无效请求多,服务器压力大 |
场景 | 保持链接,减少客户端的请求 | 一种可以得到结果就不用请求的场景(支付) |
实时性 | 有延时 | 有延时 |
数据压力 | 重复发送http头部 | 重复发送http头部 |
解决上诉问题,提出了websocket
2.websocket
websocket只需要一次链接就能保持链接,服务端一直知道你的存在,直到你自己关闭链接才会关闭。
NOTE:websocket需要浏览器的支持的
网上找到了一个例子,到时候可以去看看
FAQ
Q:HTTP 和 WebSocket 有什么关系?
A:Websocket 其实是一个新协议,跟 HTTP 协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是 HTTP 协议上的一种补充。