HTTP 1.0 和 2.0 有什么区别?
HTTP/1.0 版本主要增加以下几点:
- 增加了HEAD、POST等新方法。
- 增加了响应状态码。
- 引入了头部,即请求头和响应头
- 在请求中加入了HTTP版本号
- 引入了Content-Type,使得传输的数据不再限于文本。
HTTP/1.1 版本主要增加以下几点:
- 新增了连接管理即keepalive,允许持久连接。
- 支持pipeline,无需等待前面的请求响应,即可发送第二次请求。
- 允许响应数据分块(chunked),即响应的时候不标明Content-Length,客户端就无法断开连接,知道收到服务端的EOF,利于传输大文件。
- 新增缓存的控制和管理。
- 加入了Host头,用在你一台机子部署了多个主机,然后多个域名解析又是同一个IP,此时加入了Host头就可以判断你到底是要访问哪个主机。
HTTP/2 版本主要增加以下几点:
- 是二进制协议,不再是纯文本。
- 支持一个TCP连接发起多请求,移除了pipeline。
- 利用HPACK压缩头部,减少数据传输量。
- 允许服务端主动推送数据。
HTTP 2.0 和 3.0 有什么区别?
维度 | HTTP 2.0 | HTTP 3.0 |
---|---|---|
基于的传输层协议不同 | 基于TCP,使用二进制分帧层(Dinary Framing Layer)实现多路复用。 | 基于UDP,使用QUIC协议(Quick UDP Internet Connections),提供类似TCP的可靠性和多路复用。 |
性能和可靠性区别 | 解决了HTTP/1.x中的队头阻塞问题,但仍然受制于TCP的队头阻塞,尤其在高延迟或丢包情况下。 | 通过QUIC协议,避免了TCP队头阻塞,即使在网络不稳定的情况下也能提供更好的性能。 |
从安全性角度来看 | 可以使用TLS加密(HTTPS),但加密并非强制要求。 | 默认使用QUIC自带的TLS 1.3加密,安全性更高,且加密是强制的。 |
从连接建立速度 | 需要TCP三次握手和TLS握手,连接建立相对较慢。 | QUIC集成了连接建立和加密握手,连接建立速度更快,尤其在初次连接时。 |
HTTP 和 HTTPS 有什么区别?
维度 | HTTP | HTTPS |
---|---|---|
数据传输安全性 | 数据以明文传输,容易被窃听、篡改 | 通过SSL/TLS协议怼数据进行加密传输,提供数据机密性和完整性保障 |
端口号(默认使用端口) | 80 | 443 |
性能 | 无加密过程,连接建立速度稍快 | 基于HTTP上又加了SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议来实现的加密传输,加解密过程增加了计算开销,握手时间较长,但现代硬件和协议优化已使性能差距减小。 |
SEO影响 | 搜索引擎一般会降低未加密站点的排名 | 搜索引擎更倾向于优先展示HTTPS网站。 |