1/3
腾讯频道 - 计算机网络基础知识 - 7.HTTP 如何实现长连接?在什么时候会超时?
腾讯频道 - 计算机网络基础知识 - 7.HTTP 如何实现长连接?在什么时候会超时?
腾讯频道 - 计算机网络基础知识 - 7.HTTP 如何实现长连接?在什么时候会超时?
7.HTTP 如何实现长连接?在什么时候会超时?
什么是HTTP的长连接?
HTTP分为长连接和短连接,本质上说的是TCP的长短连接。TCP连接是一个双向的通道,它是可以保持一段时间不关闭的,因此TCP连接才具有真正的长连接和短连接这一说法。
TCP长连接可以复用一个TCP连接,来发起多次HTTP请求,这样就可以减少资源消耗,比如一次HTML请求,如果是短连接的话,可能还需要请求后续的JS/CSS。
如何设置长连接?
通过在请求头和响应头设置Connection字段指定为keep-alive,HTTP/1.0协议支持,但默认是关闭的,从HTTP/1.1以后,连接默认都是长连接。

在什么时候会超时?
HTTP一般会有httpd守护进程,里面可以设置keep-alive timeout,当tcp连接闲置超过这个时间就会关闭,也可以在HTTP的header里面设置超时时间。
TCP 的keep-alive包含三个参数,支持在系统内核的net.ipv4里面设置;当 TCP 连接之后,闲置了tcp_keepalive_time,则会发生侦测包,如果没有收到对方的ACK,那么会每隔 tcp_keepalive_intvl 再发一次,直到发送了tcp_keepalive_probes,就会丢弃该连接。

HTTP 与 HTTPS 的区别
HTTP 即超文本传输协议,是一个基于TCP/IP通信协议来传递明文数据的协议。HTTP会存在这几个问题:
请求信息是明文传输,容易被窃听截取。
没有验证对方身份,存在被冒充的风险。
数据的完整性未校验,容易被中间人篡改。

为了解决HTTP存在的问题,HTTPS出现啦。
HTTPS是什么?
HTTPS= HTTP+SSL/TLS,可以理解为 HTTPS 是身披 SSL(Secure Socket Layer,安全套接层)的HTTP。
#计算机网络
2024-10-29
浏览45
登录后评论
1
分享