• 《http权威指南》读书笔记14


    概述

    最近对http很感兴趣,于是开始看《http权威指南》。别人都说这本书有点老了,而且内容太多。我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做,还告诉你为什么这么做。于是我把学到的知识点记录下来,供以后开发时参考,相信对其他人也有用。

    实体和编码

    1.http要确保它所承载的“货物”满足以下条件:

    • 可以被正确的识别。(通过Content-Type首部说明媒体格式,Content-Language首部说明语言)
    • 可以被正确的解包。(通过Content-Length首部和Content-Encoding首部)
    • 最新的。(通过实体验证码和缓存过期控制)
    • 符合用户的需要。(基于Accept系列的内容协商首部)
    • 在网络上可以快速有效地传输。(通过范围请求、差异编码以及其他数据压缩方法)
    • 完整到达、未被篡改。(通过传输编码首部和Content-MD5校验和首部)

    2.http的早期版本通过Content-Length来检测报文截尾,如果缓存服务器收到被截尾的报文却没有识别出截尾的话,它可能会储存不完整的内容并多次使用它来提供服务。Content-Length首部对于持久连接也是必不可少的,不然无法知道报文在何处结束,下一条报文从何处开始。

    3.在使用分块编码的情况下,使用持久连接时可以没有Content-Length首部。

    4.为了检测实体主体的数据是否被不经意地修改,发送方可以在生成初始的主体时,生成一个数据的校验和,用Content-MD5首部来发送。

    5.Content-Type首部字段说明了实体主体的MIME类型。它还支持可选的参数来进一步说明内容的类型,比如下面的charset参数:

    Content-Type: text/html;charset=iso-8859-4
    

    6.Accept-Encoding字段包含用逗号分隔的支持编码的列表。并且可以给每种编码附带Q(质量)值参数来说明编码的优先级。

    7.内容编码是对报文的主体进行的可逆变换,比如gzip,但是用gzip压缩JPEG这类东西效果不够好。这个时候就用传输编码了。使用传输编码是为了改变报文中的数据在网络上传输的方式,比如分块传输。

    8.Transfer-Encoding告诉接收方为了可靠地传输报文,已经对其进行了何种传输编码。而TE用在请求首部中,告知服务器可以使用哪些传输编码扩展。

    9.对于分块编码来说,服务器可以使用大小为0的块作为主体结束的信号,所以它不需要Content-Length首部。

    10.范围请求:http还允许客户端实际上只请求文档的一部分,或者说某个范围。比如说下载重连,这个时候就从某个范围(Range首部字段)开始请求。当然前提是这段时间内,该对象没有改变过。

    11.Range首部在流行的P2P(Peer-to-Peer)文件共享客户端软件中得到广泛应用,他们从不同的对等实体同时下载多媒体文件的不同部分。

    12.差异编码:差异编码是http协议的一个扩展,它通过交换对象改变的部分而不是完整的对象来优化传输性能。客户端使用A-IM首部(Accept-Instance-Manipulation)来说明可以接受的差异编码算法,服务端通过IM响应收不来说明使用的是哪个差异编码算法。

  • 相关阅读:
    Flash与3D编程探秘(五) 摄像机旋转和移动
    Flash与3D编程探秘(一) Flash与3D空间
    Flash与3D编程探秘(六) 全方位旋转摄像机
    Flash与3D编程探秘(四) 摄像机旋转基础知识
    Flash与3D编程探秘(二) 静态长方体
    奥巴马当选 ALL THINGS ARE POSSIBLE!
    Flash游戏2D反恐精英
    动画编程中关于Time Based和Frame Based运动
    Flash与3D编程探秘(八) 3D物体着色基础知识
    Flash中使用Actionscript画贝塞尔曲线
  • 原文地址:https://www.cnblogs.com/yangzhou33/p/9286654.html
Copyright © 2020-2023  润新知