ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HTTP1.0、HTTP1.1、HTTP2.0、HTTP3.0 的区别

2022-02-21 17:34:56  阅读:147  来源: 互联网

标签:HTTP1.0 HTTP1.1 缓存 请求 响应 HTTP3.0 连接


一.HTTP1.0

     1.只有三种请求头GET、HEAD、POST

     2.每个域名同时最多建立4个连接,如果连接数>=4,其他请求,只能等待

     3.每个连接,完成一个HTTP请求、响应后,就会被服务器断开

     4.不支持断点续传

     5.缓存策略单一,只有本地缓存

     

二.HTTP1.1

    比1.0版本有哪些提升:

    

1.新增Put,Delete等方法
2.在HTTP1.0中主要使用header里的Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Cache-Control,Last-Modified/If-Modified-Since,Eag/If-None-Match等更多可供选择的缓存头来控制缓存策略。
3.支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。
4.Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。
5.长连接,HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点

  请求流水线概念:

   

请求流水线Pipelining

多个HTTP请求原有流程:
1.发送请求1
2.等待请求1响应,等待期间,当前连接不能发其他请求
3.再继续发下一个请求

请求流水线Pipelining流程:
1.发送请求1
2.等待请求1响应,等待期间,如果有其他请求,会先发送这些请求
3.按照请求发送顺序,等待对应的响应,如果第一个请求服务器处理时间很长,即使后续请求处理时间很短,也只能先接收第一个请求的响应,其他请求的响应只能等待

请求流水线解决了,请求发送的效率;但是未解决请求响应的接收效率,这个情况叫做"线头阻塞(Head of line blocking)"

 

三.HTTP2.0

    HTTP2.0做了一下改进

    

1.二进制分帧
2.首部压缩
3.多路复用
4.请求优先级
5.服务器推送

 

四.HTTP3.0

标签:HTTP1.0,HTTP1.1,缓存,请求,响应,HTTP3.0,连接
来源: https://www.cnblogs.com/hubaoxi/p/15910624.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有