问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Http协议中关于Content-Length的解读

发布网友 发布时间:2023-09-21 21:35

我来回答

1个回答

热心网友 时间:2023-09-24 17:58

在HTTP协议中,有Content-Length的详细解读。Content-Length用于描述HTTP消息实体的传输长度the transfer-length of the message-body。在HTTP协议中,消息实体长度和消息实体的传输长度是有区别,比如说gzip压缩下,消息实体长度是压缩前的长度,消息实体的传输长度是gzip压缩后的长度。
在具体的HTTP交互中,客户端是如何获取消息长度的呢,主要基于以下几个规则:
响应为1xx,204,304相应或者head请求,则直接忽视掉消息实体内容。
如果有Transfer-Encoding,则优先采用Transfer-Encoding里面的方法来找到对应的长度。比如说Chunked模式。
“如果head中有Content-Length,那么这个Content-Length既表示实体长度,又表示传输长度。如果实体长度和传输长度不相等(比如说设置了Transfer-Encoding),那么则不能设置Content-Length。如果设置了Transfer-Encoding,那么Content-Length将被忽视”。这句话翻译的优点饶,其实关键就一点:有了Transfer-Encoding,则不能有Content-Length。
Range传输。不关注,没详细看了:)
通过服务器关闭连接能确定消息的传输长度。(请求端不能通过关闭连接来指明请求消息体的结束,因为这样可以让服务器没有机会继续给予响应)。这种情况主要对应为短连接,即非keep-alive模式。
HTTP1.1必须支持chunk模式。因为当不确定消息长度的时候,可以通过chunk机制来处理这种情况。
在包含消息内容的header中,如果有content-length字段,那么该字段对应的值必须完全和消息主题里面的长度匹配。
“The entity-length of a message is the length of the message-body before any transfer-codings have been applied”
也就是有chunk就不能有content-length 。
其实后面几条几乎可以忽视,简单总结后如下:
1、Content-Length如果存在并且有效的话,则必须和消息内容的传输长度完全一致。(经过测试,如果过短则会截断,过长则会导致超时。)
2、如果存在Transfer-Encoding(重点是chunked),则在header中不能有Content-Length,有也会被忽视。
3、如果采用短连接,则直接可以通过服务器关闭连接来确定消息的传输长度。(这个很容易懂)
结合HTTP协议其他的特点,比如说Http1.1之前的不支持keep alive。那么可以得出以下结论:
1、在Http 1.0及之前版本中,content-length字段可有可无。
2、在http1.1及之后版本。如果是keep alive,则content-length和chunk必然是二选一。若是非keep alive,则和http1.0一样。content-length可有可无。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
dell电脑散热是按哪个键 风水中的北方与肾的关系 20分+100分 哈尔滨近期招聘会 哈尔滨信息港的基本信息 哈尔滨信息港基本信息 哈尔滨市最近的招聘信息? 黑龙江省招聘查询入口(龙招港黑龙江招生网2020招聘信息)? 小区车位如何配比 身上红点不痛不痒是怎么回事 万家乐LJSQ20-12UF1保修信息 《三国演义》中诸葛亮和司马懿各是什么人 初中安全教育手抄报内容 华为p10是不是最贵的 华为p10为什么比荣耀9贵那么多 ...她学幼师可以上3+2吗?到哪里上?我是山东省汶上县。另外问一下... 茶叶蛋的危害和禁忌 怎么样可以隐藏QQ好友头像后面显示QQ更新内容的小星星 设置虚拟内存的原则如下 固化剂能当地坪漆罩吗 ...必须要瞒着家里人,他总是让我晚上下楼去他房间睡,我感觉家里好像已经... ...晚上下楼去他房间,然后一大早再回到楼上自己房间 少前云图计划薮春晏海沉香时装怎么样 朋友之间说了句谎话要两万钱说是保证金这是诈骗不? 我们网络聊天都说的假话属于诈骗吗 显卡最多有几个电源接口 显卡多接口可以同时用吗? 很多家新装修都不要客厅了,那么他们是如何装修的 旧房没有客厅怎么装修 形容能人很多的成语 跟男友冷战多久男友才会害怕 如果登不上去,里一个好友都没有,应该怎样登上? ...号登不上去,里一个好友都没有,应该怎样登上?微信一个人... 如果登不上去,里一个好友都没有,应该怎样登上? ...号有在,想重新登陆微信,但是里是没有好友的,如何辅助登陆? 如果登不上去,里一个好友都没有,应该怎样登上? ...号登不上去,里一个好友都没有,应该怎样登上?微信一个人... 如果登不上去,里一个好友都没有,应该怎样登上? ...号有在,想重新登陆微信,但是里是没有好友的,如何辅助登陆? 初中初二作文450字:我心飞扬 题目叫“让爱绽放,我心飞扬”怎么写作文 为什么同居后会越来越冷淡? 同居生活后感情变浅怎么办呢? 和对象同居之后会感情变淡吗? 为什么男女朋友同居在一起慢慢的感情变淡,经常争吵,甚至有点厌烦,在一... 泰拉瑞亚iOS上配饰怎么脱 企业一般给员工入的都是社会保险吧可不可以入商业险那个更合适 社会保险和商业保险应该选哪个? 如果从来都不交五险一金,自己交商业保险合适吗,可行吗?会不会更有保 ... 樱桃树的叶子上有类似与小虫子的那个卷卷是什么东西 樱桃叶面卷曲成小虫状里面有小虫是什么病?