什么是HTTP长连接?
HTTP长连接是指复用TCP连接,多个HTTP请求可以复用同一个TCP连接,这就节省了TCP连接建立和断开的消耗。
HTTP1.0默认使用短连接。每一次HTTP请求就建立一次连接,任务结束就中断连接。
HTTP1.1默认使用长连接。客户端和服务端的HTTP首部Connection都要设置为keep-alive,才能支持长连接。
HTTP2.0和1.1的区别
1.1使用的是文本格式传输数据;而2.0使用二进制格式传输数据,解析更高效。
多路复用:在一个连接里,允许同时发送多个请求或响应,并且这些请求或响应能够并行的传输而不被阻塞。
头部压缩:HTTP1.1的header带有大量信息,而且每次都要重复发送;HTTP2.0把header从数据中分离,并封装成头帧和数据帧,使用特定算法压缩头帧,有效减少头信息大小。并且HTTP2.0在客户端和服务端记录了之前发送的键值对,对于相同的数据,不会重复发送。比如请求a发送了所有的头信息字段,请求b则只需要发送差异数据,这样可以减少冗余数据,降低开销。
服务端推送:HTTP2.0允许服务器向客户端推送资源,无需客户端发送请求到服务器获取。
HTTP安全吗?
HTTP是明文传输,容易被黑客窃听或篡改,不安全。
可以使用HTTPS来解决HTTP明文协议的缺陷,在HTTP的基础上加入SSL/TLS协议,依靠SSL证书来验证服务器的身份,为客户端和服务端之间建立SSL通道,确保数据传输安全。