HTTP长连接和短连接
1.HTTP协议的五大特点
1)支持客户/服务器模式
2)简单快速
3)灵活
4)无连接
每次连接只处理一个请求,服务器处理完客户的请求,并受到客户的应答后,断开连接。
5)无状态
协议不会记录服务器客户端状态。
2.保持HTTP连接状态的两种方式
1)Cookie
在访问统一网站时,可以将信息写入cookie,方便在不同的页面间提取信息。
2)Session
Session保存在服务器上,同时将标识Session的SessionId传递给客户端浏览器,保存在cookie中,浏览器关闭后,这个cookie就会被清掉。
浏览器每次请求都会额外加上这个参数值,服务器根据这个SessionId,就能取得客户端的数据信息。
3.什么是HTTP长连接,短连接
HTTP的长连接,短连接本质上是TCP长连接,短连接。
在HTTP/1.0中,默认使用的是短连接。
即浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。这样,如果一个网页中包含其他的web资源,如JavaScript文件,图像文件,CSS文件等,都需要建立连接。
从HTTP/1.1起,默认使用长连接。我们可以看到响应头有这样一行代码:Connection:keep-alive
当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这条已经建立的连接。
4.长连接短连接操作过程
短连接的操作步骤是:
建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接
长连接的操作步骤是:
建立连接——数据传输...(保持连接)...数据传输——关闭连接
5.长连接短连接的优缺点
长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。对于频繁请求资源的客户来说,较适用长连接。
Client与server之间的连接如果一直不关闭的话,会存在一个问题,随着客户端连接越来越多,server早晚有扛不住的时候,这时候server端需要采取一些策略,如关闭长时间没有读写事件的连接;限制每个客户端的最大长连接数。
短连接对服务器来说管理较为简单,存在的连接都是有用的连接。但如果客户请求频繁,将在TCP的建立和关闭上浪费时间和带宽。
6.长连接短连接使用场合
长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。如数据库的连接。
而像web网站的http服务一般用短连接,因为长连接对于服务端来说会耗费一定的资源,而像web网站这么频繁的成千上万甚至上亿客户端的连接用短连接更省资源,如果用长连接,而且同时有成千上万的用户。如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作的情况下用短连接好。