美文网首页
90.http权威指南-第14章-实体和编码

90.http权威指南-第14章-实体和编码

作者: wo不是黄蓉 | 来源:发表于2022-04-11 23:47 被阅读0次

content-length:

  • 用来表示实体的大小,如果设置了gzip就是压缩后的大小;
  • 用来检测截尾,客户端区分报文结束和正常的连接关闭,还是报文传输中由于服务器崩溃而导致的连接关闭;
  • 持久连接,http应用程序不知道某个实体主体在哪里结束,下一条报文从哪里开始;

content-length内容编码,确定实体主体长度的规则:

  • 指定不允许带主体的报文类型不允许带主体,忽略content-length首部。如果head发送和get等价的请求并且不带主体时,会出现content-length首部,这时表示的是首部提示性的,不表示实际的主体长度。
    因为get响应会带有content-length,但是Head响应中没有主体。
  • 报文中含有描述传输编码的transfer-encoding首部,实体就应由一个称为“零字节块”的特殊模式结束,除非保卫呢已经因连接关闭而结束。
  • 如果报文中有content-length而且没有非恒等的transfer-encoding首部字段,content-length的值就是主体的长度;报文中既有content-length又有transfer-encoding就忽略content-length。因为传输编码会改变主体的长度。
  • 如果报文使用了multipart/byteranges媒体类型,且没有用content-length,多不部分报文中的每个部分都要说明它自己的大小。
  • 如果上面规则都不匹配,实体就在连接关闭时结束。服务器可以使用连接关闭来表示报文结束。客户端不能用关闭连接来指示客户端报文结束,这样服务端就无法发回响应。

实体摘要

为了保证实体数据不被修改,发送方在生成初始主体时,生成一个数据的校验和,这样接收方就能通过检查校验和来查看实体是否被修改了。

服务器使用content-MD5首部发送对实体主体运行MD5算法的结果。

content-MD5对首部实体编码之后,还没传输编码之前,计算出来的。

客户端必须先进行传输编码的解码,然后计算所得到的未进行传输编码的实体主体的MD5。

媒体类型和字符集

content-type客户端使用MIME类型来解释和处理实体内容。

字符编码:charset

多部份媒体类型:multipart

  • 多部分表格提交:multipart/form-data
  • boundary说明了分割主体中的不同部分所有的字符串
  • byteranges首部和带有不同范围的多部分主体

内容编码

content-encoding接收应用程序使用指定的编码格式解码。

Accept-encoding服务器用客户端指定的方式来对内容进行编码。

identity只在Accept-encoding首部中出现,客户端用它来说明相对于其他内容编码算法的优先级。

传输变么和分块编码

作用在实体上的,和内容的编码格式无关,为了改变报文中数据在网络上的传输方式。

  • 可靠传输
    • 未知尺寸:使用content-length首部
    • 安全性:SSL

2022.4.12更新

验证码和新鲜度

有条件的请求:文档再客户端“过期”之后,客户端必须从服务器请求一份新的副本,没有过期继续使用缓存副本。

要求客户端使用验证码来告知服务器它当前拥有的版本号,只有当副本不再有效时才要求发送新的副本。

新鲜度

expires和cache-control(缓存控制)

expires需要保证客户端和服务端的时间是一致的。

cache-control使用相对时间进行定义。

相关文章

网友评论

      本文标题:90.http权威指南-第14章-实体和编码

      本文链接:https://www.haomeiwen.com/subject/lfqgsrtx.html