《HTTP权威指南》第十五章学习总结--实体和编码

	**定个小目标,吃透这本书,每天最少一章 CSDN 见**
  1. 报文是乡镇,实体是货物
    如果吧HTTP报文想象成因特尔网货运系统中的箱子,那么HTTP实体就是报文中实际的货物。
    HTTP实体首部描述了HTTP报文的内容,HTTP/1.1版定义了一下10个基础字体首部:
    Content-Type:实体中所承载对象的类型
    Content-Length:所传输实体的长度或大小
    Content-Language:与传输对象最相配的人类语言
    Content-Encoding:对象数据所做的任意转换(比如,压缩)
    Content-Location:一个备用位置,请求时可通过它获得对象。
    Content-Range:如果这是部分实体,这个首部说明它是整体的那个部分。
    Content-MD5:实体主体内容的校验和
    Last-Modified:所传输内容在服务器上创建或最后修改时间
    Expires:实体数据将要失效的日期时间
    Allow:该只有所允许的各种请求方法,例如,GET和HEAD。
    ETag:这分文档特定实例的惟一验证码。ETag首部没有证书定义实体首部,但它对许多涉及实体的操作来说,都是一个重要的首部。
    Cache-control:指出应该如何缓存该文档。和ETag首部类似,Cache-control首部也没由定义为实体首部
  2. Content-Length:实体的大小
    Content-Length首部指示出报文中实体主体的字节大小。Content-Length的正确性是非常重要的。
    Content-Length首部对于持久链接是必不可少的。如果响应通过持久链接传输,就可能由另一条HTTP响应紧随其后。客户端通过Content-Length首部就可以知道报文在何处接受,下一条报文从何处开始。如果特定的HTTP报文类型中不允许携带由主体,就忽略Content-Length首部。
  3. 实体摘要
    服务器要使用Content-MD5首部发送对实体主体允许MD5算法的结果。只产生响应的原始服务器可以技术按并发送Content-MD5首部。中间代理和缓存不应当修改或添加这个首部。
  4. 媒体类型和字符集
    Content-Type首部字段说明了实体主体的MIME类型,MIME类型是标准话的名字;用以说明作为货物运至实体的基本媒体类型。在这里插入图片描述
  5. 内容编码
    HTTP应用程序有时在发送之前,需要对内容进行编码。例如在把很大的HTML文档发送给通过满是链接接上来的客户端之前,服务器可能会对它进行压缩,这样有助于减少传输实体的时间。服务器还可以把内容搅乱或加加密,以此来防止未授权的第三方看到文档内容。在这里插入图片描述
    在这里插入图片描述
    我们不希望服务器用客户端无法理解的编码的方式来对内容编码,为了避免服务器使用客户端不支持的编码方式,客户端就吧字节支持的内容编码方式列表防止亲贵去Accept-Encoding首部里发送出去,如果HTTP请求中没有包含Accept-Encoding首部,服务器就可以假定客户端能够接受任何编码方式。在这里插入图片描述
  6. 传输编码和分块编码
    内容编码是和内容的集体格式细节紧密相关的。
    长久以来,在其他的一些协议中会用传输编码来保证报文经过网络时能得到“可靠传输”。在HTTP协议中可靠传输关注的焦点有所不同,因为底层的传输设施已经标准话且容错性更好。
    HTTP协议中只定义了下面两个首部来描述和控制传输编码
    Transfer-Encoding:告诉接受方为了可靠的传输报文,已经对其进行了何种编码。
    TE:用在请求首部,告诉服务器可以使用那些传输编码扩展。
    分块编码把报文分割为若干个大小以知的块。块之间是紧挨着发送的,这样就不需要在发送之前知道整个报文的大小了。需要注意的是;分开编码是一种传输编码,因此是报文的属性,它和分块编码是完全独立的。
    若客户端和服务器之间不是持久链接,客户端就不需要知道它正在读取的主体长度,而只需要读到服务器关闭主体链接为止。。
    当使用持久链接时,在服务器写主体之前,必须知道它正在读取的主体的长度。如果服务器动态创建内容,就可能在发送之前无法知道主体的长度。
    分块编码为这种困难提供了解决方案,只要允许服务器吧主体逐块发送,说明每块的大小就可以了,因为主体是动态创建的,服务器可以缓存它的一部分,发送其大小和相应的块,然后主体发送完之前,重复这个过程。服务器可以用大小为0的块作为主体结束信号,这样就可以保持继续链接,为下一个响应做准备。在这里插入图片描述
    内容编码与传输编码可以同时结合使用
    在这里插入图片描述
    对报文主体使用传输编码是,必须遵守一下规则:
    传输编码集合中必须包括“分块”。惟一的例外是使用关闭链接来结束报文
    当使用分块传输编码时,它必须是最后一个作用到报文主体之上的
    分块传输编码不能多重作用到一个报文主体上
  7. 随时间变化的实例
    网站对象并不是静态的,同样的URL会随着时间变化而指向对象不同的版本。HTTP协议规定了称为实例操控的一系列请求和响应操作,用以操控对象的实例。请添加图片描述
  8. 验证码和新鲜度
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这话题前面有说过,这里就不说了
  9. 范围请求
    有了范围请求HTTP客户端可以同情请求曾获取失败的实体的一个范围,来恢复下载该实体。
    GET /bigfile.html HTTP/1.1
    Host: www.joes. com
    Range: bytes=4000-
    User-Agent: Mozilla/4.61 [en] (winNT;I)
    在本例中,客户端请求的是文件开头的4000字节之后的部分。在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值