图解HTTP(1): HTTP首部

HTTP报文的首部

HTTP报文首部由四部分组成,分别是:
1. 通用首部
2. 请求首部
3. 响应首部
4. 实体首部

在chrome浏览器里面的 network 面板下面可以查看如下:
图解HTTP(1): HTTP首部_第1张图片

通用首部

Cache-Control :
Date :

请求首部

Accept: 用户代理可以处理的媒体类型
Accept-charset:优先的字符集
If-Modifield-Since :

响应首部

Accept-Ranges:是否接受字节范围请求

实体首部

Allow: 服务器端向其写入 URL 指定资源资源支持的http方法
Content-Encoding: 指明了服务器端对实体内容进行了何种方式的压缩
常用压缩:

  • gzip
  • compress
  • deflate
  • indentity

Content-language:表示当前页面使用的自然语言

和charset的区别是:任何一种语言可能都会对应有几种编码字符集。比如中文的编码字符集就有中国国家标准总局编制的GB2312,GB18030,国际标准化组织(ISO)和多语言软件制造商组成的统一码联盟编制的UTF-32,UTF-16,UTF-8。
charset和Content-Language的含义就是,当前页面的语言是中文的,请浏览器使用UTF-8编码字符集进行解码显示。

Content-MD5: 服务器端对报文主体进行MD5算法生成128位二进制数,然后通过Base64编码后作为字段的值。然后客户端接收到报文后会对报文进行一相同的MD5算法,然后将计算出来的值和字段的值进行比较来判断报文主体准确性。

Content-Length: 服务器端表示传输数据的长度,单位是字节数。但是在使用压缩算法对实体进行压缩时不能使用该字段。

Content-Type:服务器指明实体内对象的媒体类型

Expires:服务器端设置资源失效的时间。缓存服务器在接收到带有Expires字段的报文时会以缓存的方式来应答请求。
如果不希望源服务器对报文进行缓存和可以写入和 Date 字段相同的值。但是如果Cache-Control 字段中写入了max-age指令,那么会优先执行max-age指令。

Last-Modified: 指明资源最终被修改的时间

附录:

base64编码:基于64(a-z,A-Z,0-9,还有两个根据系统而定)个可打印字符来表示二进制数据的编码方式。(每六个二进制数据表示一个字符)
图解HTTP(1): HTTP首部_第2张图片

如果要编码的字节数不能被3整除,最后会多出1个或2个字节,那么可以使用下面的方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行base64的编码。在编码后的base64文本后加上一个或两个’=’号,代表补足的字节数。也就是说,当最后剩余两个八位字节(2个byte)时,最后一个6位的base64字节块有四位是0值,最后附加上两个等号;如果最后剩余一个八位字节(1个byte)时,最后一个6位的base字节块有两位是0值,最后附加一个等号。 参考这里

你可能感兴趣的:(http)