HTTP长连接和短连接的区别和优缺点?

哎哟JAVA不错哦


今天去面试,问到了HTTP长连接和短连接的区别,刚好来总结下!

首先明白下什么是HTTP?

HTTP:Hypertext Transfer Protocol(超文本传输协议),是一种网络传输协议,HTTP只是定义了一套数据传输的标准,处于OSI七层模型中的应用层,所以说http连接是不标准的;

真正实现定义并实现了数据传输协议的TCP,所以问题变为TCP长连接和TCP短连接的区别? 长和短又怎么区分的呢?举个很俗的例子,物欲横流的今天,我们都知道一个词--yy情,像这种一晚上或者一次的关系就是短,而像恋人朋友的关系就是长。

TCP连接也是一样的,如果在一次HTTP请求和响应结束之后,立马断开连接,就是TCP短连接;

如果在一次请求和响应结束之后,没有主动断开连接,继续为后面的请求响应提供连接,就是长连接;长连接的client和server为了保持连接,会有一个Connection的设置为keep-alive,这是一种心跳机制,client和server会以一定的频率发送消息确认对方是否还在线,如果不在线那么一段时间之后连接就会关闭,打开baidu网,能看到在Request Heads和Response Heads两个头中都有这个配置,说明网页多数使用的是长连接(事实上,现在的HTTP1.1默认都是长连接)


那么TCP长短连接之间有什么区别与有缺点呢?

长连接和短连接之间最为明显的不同就是TCP连接的创建和关闭频率,长连接维持对于客户端来说可能没有什么影响,但是对服务端来说,如果有成千上万的连接这种并发量较高的情况,那么对于服务器性能是有很大要求;


如果是短连接,在一个网站打开每个网页或者做什么操作都需要需要频繁的创建和销毁连接(三次握手,四次挥手了解一下),显然这对于服务器也是极大地资源浪费(可能包含页面,图片,静态文件等等大量数据);

所以使用TCP长连接还是短连接还是要按照场景来定。http连接就说到这了,更多的技术分享,敬请关注。。


分享到:


相關文章: