大茂名网

 找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 182|回复: 0

[【编导】] 知晓阿里一面:HTTP 1.0 和 HTTP 1.1 有什么区别2022/12/26 8:48:28

[复制链接]

2万

主题

2万

帖子

9万

积分

钻石元老

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
98065
发表于 2022-12-26 08:48 | 显示全部楼层 |阅读模式

马上注册登陆,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?用户注册

x

这篇文章主要从从下面几个维度来对比HTTP10和HTTP11,我们一起来看。ip域名查询网的相关知识也可以到网站具体了解一下,有专业的客服人员为您全面解读,相信会有一个好的合作!


今天分享一道读者面试阿里遇到的面试题,还是热乎的。

这篇文章会从下面几个维度来对比HTTP10和HTTP11:

响应状态码缓存处理连接方式H头处理带宽化响应状态码HTTP10仅定义了16种状态码。HTTP11中新加入了大量的状态码,光是错误响应状态码就新增了24种。比如说,100(C)?——在请求大资源前的预热请求,206(PC)?——范围请求的标识码,409(C)?——请求与当前资源的规定冲突,410(G)——资源已被长时间转移,而且没有任何已知的转发地址。

缓存处理缓存技术通过避免用户与源服务器的频繁交互,节约了大量的络带宽,降低了用户接收信息的延迟。

HTTP10HTTP10提供的缓存机制非常简单。服务器端使用E?标签来标志(时间)一个响应体,在E?标志时间内的请求,都会获得该响应体缓存。服务器端在初次返回给客户端的响应体中,有一个L-M?标签,该标签标记了被请求资源在服务器端的比较后一次修改。在请求头中,使用I-M-S?标签,该标签标志一个时间,意为客户端向服务器进行问询:“该时间之后,我要请求的资源是否有被修改过”通常情况下,请求头中的I-M-S?的值即为上一次获得该资源时,响应体中的L-M的值。

如果服务器接收到了请求头,并判断I-M-S?时间后,资源确没有修改过,则返回给客户端一个304响应头,表示”缓冲可用,你从浏览器里拿吧!”。

如果服务器判断I-M-S?时间后,资源被修改过,则返回给客户端一个200OK的响应体,并附带全新的资源内容,表示”你要的我已经改过的,给你一份新的”。



HTTP11HTTP11的缓存机制在HTTP10的基础上,大大增加了灵活性和扩展性。基本工作原理和HTTP10保持不变,而是增加了更多细致的特性。其中,请求头中比较常见的特性就是C-C,详见MDNW文档C-C

连接方式HTTP10默认使用短连接,也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的W页中包含有其他的W资源(如JS文件、图像文件、CSS文件等),每遇到这样一个W资源,浏览器就会重新建立一个TCP连接,这样就会导致有大量的“握手报文”和“挥手报文”占用了带宽。

为了解决HTTP10存在的资源浪费的问题,HTTP11化为默认长连接模式。采用长连接模式的请求报文会通知服务端:“我向你请求连接,并且连接成功建立后,请不要关闭”。因此,该TCP连接将持续打开,为后续的客户端-服务端的数据交互服务。也就是说在使用长连接的情况下,当一个页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。

如果TCP连接一直保持的话也是对资源的浪费,因此,一些服务器软件(如A)还会支持超时时间的时间。在超时时间之内没有新的请求达到,TCP连接才会被关闭。

有必要说明的是,HTTP10仍提供了长连接选项,即在请求头中加入C:K-?。同样的,在HTTP11中,如果不希望使用长连接选项,也可以在请求头中加入C:,这样会通知服务器端:“我不需要长连接,连接成功后即可关闭”。

HTTP协议的长连接和短连接,质上是TCP协议的长连接和短连接。

现长连接需要客户端和服务端都支持长连接。

H头处理域系统(DNS)允许多个主机绑定到同一个IP地址上,但是HTTP10并没有考虑这个问题,假设我们有一个资源URL是:1,HTTP10的请求报文中,将会请求的是GETHTTP10也就是不会加入主机。这样的报文送到服务器端,服务器是理解不了客户端想请求的真正址。

因此,HTTP11在请求头中加入了H?字段。加入H字段的报文头部将会是:

GETHTTP11H:1这样,服务器端就可以确定客户端想要请求的真正的址了。

带宽化范围请求HTTP11引入了范围请求()机制,以避免带宽的浪费。当客户端想请求一个文件的一部分,或者需要继续下载一个已经下载了部分但被终止的文件,HTTP11可以在请求中加入R?头部,以请求(并只能请求字节型数据)数据的一部分。服务器端可以忽略R?头部,也可以返回若干R响应。

如果一个响应包含部分数据的话,那么将带有206(PC)状态码。该状态码的意义在于避免了HTTP10代理缓存错误地把该响应认为是一个完整的数据响应,从而把他当作为一个请求的响应缓存。

在范围响应中,C-R头部标志指示出了该数据块的偏移量和数据块的长度。

状态码100HTTP11中新加入了状态码100?。该状态码的使用场景为,存在某些较大的文件请求,服务器可能不愿意响应这种请求,此时状态码100可以作为指示请求是否会被正常响应,过程如下图:



然而在HTTP10中,并没有100(C)?状态码,要想触发这一机制,可以发送一个E?头部,其中包含一个100-的值。

压缩许多格式的数据在传输时都会做预压缩处理。数据的压缩可以大幅化带宽的利用。然而,HTTP10对数据压缩的选项提供的不多,不支持压缩细节的选择,也法区分端到端(--)压缩或者是逐跳(--)压缩。

HTTP11则对内容编码(-)和传输编码(-)做了区分。内容编码总是端到端的,传输编码总是逐跳的。

HTTP10包含了C-E?头部,对消息进行端到端编码。HTTP11加入了T-E?头部,可以对消息进行逐跳传输编码。HTTP11还加入了A-E头部,是客户端用来指示他能处理什么样的内容编码。

总结连接方式:HTTP10为短连接,HTTP11支持长连接。状态响应码:HTTP11中新加入了大量的状态码,光是错误响应状态码就新增了24种。比如说,100(C)?——在请求大资源前的预热请求,206(PC)?——范围请求的标识码,409(C)?——请求与当前资源的规定冲突,410(G)——资源已被长时间转移,而且没有任何已知的转发地址。缓存处理:在HTTP10中主要使用里的I-M-S,E来做为缓存判断的标准,HTTP11则引入了更多的缓存控制策略例如E,I-U-S,I-M,I-N-M等更多可供选择的缓存头来控制缓存策略。带宽化及络连接的使用:HTTP10中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP11则在请求头引入了头域,它允许只请求资源的某个部分,即返回码是206(PC),这样就方便了开发者自由的选择以便于充分利用带宽和连接。H头处理:HTTP11在请求头中加入了H字段。
爱上大茂名,喜当大猫友,吃喝玩乐事,天天乐开怀!
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

QQ|客服:0668-2886677QQ:75281068|大茂微博|小黑屋|手机版|Archiver|大茂名网 ( 粤ICP备18149867号 )茂名市大茂科技有限公司 版权所有 

GMT+8, 2024-11-29 12:48 , Processed in 0.072954 second(s), 8 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表