HTTP1.0 HTTP1.1 HTTP2.0 HTTP3.0

本文介绍了HTTP协议从1.0到3.0的演变,包括HTTP 1.0的无连接、无状态特性,HTTP 1.1的长连接、缓存处理和错误状态码,SPDY协议的多路复用和请求优先级,HTTP 2.0的二进制格式、多路复用和头部压缩,以及HTTP 3.0采用QUIC协议以减少延迟。
摘要由CSDN通过智能技术生成


HTTP的基本优化

影响一个http网络请求的因素主要有两个:带宽延迟

带宽:如果说我们还停留在拨号上网的阶段,带宽可能会成为一个比较严重影响请求的问题,但是现在网络基础建设已经使得带宽得到极大的提升,我们不再会担心由带宽而影响网速,那么就只剩下延迟了。
延迟

  • 浏览器阻塞(HOL blocking):浏览器会因为一些原因阻塞请求。浏览器对于同一个域名,同时只能有4个连接(浏览器内核不同可能会有所差异),超过浏览器最大连接数限制,后续请求就会被阻塞。
  • DNS查询(DNS Lookup):浏览器需要知道目标服务器的IP才能建立连接。将域名解析为IP的这个系统就是DNS。可以利用DNS缓存来减少时间的目的。
  • 建立连接(Initial connection):HTTP是基于TCP协议的,浏览器最快也要在第三次握手时才能捎带HTTP请求报文,达到真正的建立连接,但是这些连接无法复用会导致每次请求都经历三次握手和慢启动。三次握手在高延迟的场景下影响较明显,慢启动则对文件类大请求影响较大。

HTTP 1.0

HTTP1.0最早在网页中使用是在1996年,那个时候只是使用一些较为简单的网页上和网络请求上。

特点:

1.0 的HTTP版本,是一种无状态、无连接的应用层协议。HTTP 1.0 规定浏览器和服务器保持短暂的连接。

浏览器每次请求都需要与服务器建立一个TCP连接,服务器处理完以后立即断开TCP连接(无连接),服务器不跟踪每个客户端,也不记录过去的请求(无状态)。

这种无状态可以借助cookie/session机制来做身份认证和状态记录。

存在的问题:

  • 无法复用连接,每次发送请求,都需要进行一次TCP连接,而TCP的连接释放过程又是比较费事的。这种无连接的特性会使得网络的利用率变低。
  • 队头阻塞(head of line blocking),由于HTTP1.0规定下一个请求必须在前一个请求响应到达之前才能发送,假设前一个请求响应一直不到达,那么下一个请求就不发送,后面的请求就阻塞了。
  • 不支持断点续传,也就是说,每次都会传送全部的页面和数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南栀~zmt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值