• HTTP报文内的HTTP信息


    HTTP报文:用于HTTP协议交互的信息,是由多行数据构成的字符串文本(用CR+LF作换行符)。

    结构:报文首部+空行+报文主体(非必需)

    请求报文:客户端的HTTP报文。  报文首部的内容:请求行,请求首部字段,通用首部字段,实体首部字段,其他。

    响应报文:服务器端的HTTP报文。 报文首部的内容:状态行,响应首部字段,通用首部字段,实体首部字段,其他。

    编码提升传输速率

    HTTP在传输数据时可以进行编码来提升传输速率。编码的操作需要计算机来完成,因此会消耗更多的CPU等资源。

    内容编码指明应用在实体内容上的编码格式,并保持实体信息原样压缩。内容编码后的实体由客户端接受并负责解码。

    常见的内容编码有:gzip(GNU zip)、compress(UNIX系统的标准压缩)、deflate(zlib)、identity(不进行编码)。

    分块传输编码(Chunked Transfer Coding):一种把实体主体分块的功能。

    分块传输编码会将实体主体分成多个部分(块)。每一块都会用十六进制来标记块的大小,而实体主体的最后一块会用“0(CR+LF)”来标记。

    由客户端进行解码。

    HTTP/1.1中存在传输编码(Transfer Coding)的机制。它可以在通信时按照某种编码方式传输,但只定义作用域分块传输编码中。

    发送多种数据的多部分对象集合

    在HTTP报文中使用多部分对象集合时,需要在首部字段里加上Content-type。

    multipart/form-data:在Web表单文件上传时使用。

    multipart/byteranges:状态码206(Partial Content,部分内容)响应报文包含了多个范围的内容时使用。

    范围请求(Range Request)

    问题:下载一个图片发生中断时,需要重新下载。

    解决:指定下载的实体范围。

    比如:对于一个1000字节的图片,下载到一半时发生网络中断,待网络恢复时可以只请求下载501~1000字节内的资源。

    执行范围请求时,会用到首部字段Range来指定资源的byte范围。

    #5001~10000字节
    Range: bytes=5001-10000
    #从5001字节之后全部的
    Range: bytes=5001-
    #从一开始到3000字节,和5000-7000字节的多重范围
    Range: bytes=-3000, 5000-7000

    针对范围请求,相应会返回状态码为206 Partial Content的响应报文。

    对于多重范围的范围请求,相应会在首部字段Content-Type标明multipart/byteranges后返回响应报文。

    如果服务器端无法响应范围请求,则会返回状态码 200 OK和完整的实体内容。

    内容协商(Content Negotiation)

    内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为适合的资源。

    用处:当浏览器的默认语言为英语或中文,访问相同URI的Web页面,会显示对应的英语班或中文版Web页面。

    三种类型:

    1.服务器驱动协商(Server-driver Negotiation):由服务器端进行内容协商。以浏览器发送的首部字段作为判定的依据,并不一定能筛选出最优的内容。

    2.客户端驱动协商(Agent-driver Negotiation):由客户端进行内容协商的方式。用户从浏览器显示的可选列表中手动选择。

    3.透明协商(Transparent Negotiation):是服务器驱动和客户端驱动的结合体,由服务器端和客户端各自进行内容协商的一种方法。

  • 相关阅读:
    C#基础笔记(第十四天)
    C#基础笔记(第十三天)
    C#基础整理(二)
    C#基础笔记(第十二天)
    C#基础笔记(第十一天)
    C#基础笔记(第十天)
    C#基础笔记(第九天)
    [PyTorch 学习笔记] 2.3 二十二种 transforms 图片数据预处理方法
    [PyTorch 学习笔记] 2.2 图片预处理 transforms 模块机制
    [PyTorch 学习笔记] 2.1 DataLoader 与 DataSet
  • 原文地址:https://www.cnblogs.com/drake-guo/p/6247844.html
Copyright © 2020-2023  润新知