HTTP总结---满满的干货

1、HTTP 0.9
只有get方法,没有请求头。

2、HTTP1.0
1、请求中添加了版本号。
2、可以使用content-type传输其他文件了。
3、request和response都有请求头了。

3、HTTP1.1
主要解决了网络性能的问题。
1、可以让http重用tcp链接,每次请求不需要经过三次握手了。别称为HTTP长链接。
2、第一个请求发送出去的时候,不需要等待相应返回,就可以发第二个请求了。
3、请求头可以加入host这个字段,服务器可以马上知道请求的域名网站了。
4、加入了option方法。
5、支持websocket模型。

4、HTTP2(http2.0是一种安全高效的下一代http传输协议,http2.0建立在https协议的基础上,通过二进制分帧来进行数据传输)
1、在一个tcp链接可以并行发起多个请求。
2、二进制协议,增加了传输效率。
3、会压缩请求头,如果多个请求头有重复部分,会压缩。
4、可以服务端push,如果客户端没有请求,但是服务端可以将一部分资源随着一次相应返回给客户端,并且缓存到客户端上。
5、不是强制使用 TLS
存在问题:
要的问题是:若干个HTTP的请求在复用一个TCP的连接,底层的TCP协议是不知道上层有多少个HTTP的请求的,所以,一旦发生丢包,造成的问题就是所有的HTTP请求都必需等待这个丢了的包被重传回来,哪怕丢的那个包不是我这个HTTP请求的。(这个问题tcp是无法解决的)

5、HTTP3 QUIC协议的产生、基于udp协议开发的HTTP协议
1、要建立一个HTTPS的连接,先是TCP的三次握手,然后是TLS的三次握手,要整出六次网络交互,一个链接才建好。UDP也得要实现这个事。于是QUIC优化了这个事情,当首次建立连接的时候需要使用DH算法,然后下次链接使用首次链接的时候相互传递的config包(里面有公钥和两个随机数),从而实现1RTT实现链接。
2、解决了队头阻塞的问题,一个进程阻塞只会影响这一个进程流,不会影响在同一条tcp链接上的其他流。
• 我们回想一下HTTPS,HTTPS是类似于TCP握手的工作方式,先工作在HTTP1上,通过HTTP1传递交换得到秘钥,然后切换到HTTPS上工作。
• 接着我们回想一下HTTP2,HTTP2也是基于TLS的,所以HTTP2的工作方式和HTTPS也是同样的过程,需要握手建立TLS连接,只是TLS连接完成后,发送一个HTTP2的连接确认消息,确认后,客户端服务器使用HTTP2进行连接通讯。
• 最后让我们看下HTTP3如何工作。首先要建立好HTTP2连接,然后发送HTTP2扩展帧,这个帧包含IP和端口,浏览器收到扩展帧,使用该IP和端口,使用QUIC建立连接,如果成功,断开HTTP2,升级为HTTP3。
这三者,都用TCP的握手协议去理解,都是握手,不同的是握手方式不一样。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值