6.5 实体首部字段
2017-02-03 11:34
281 查看
实体首部字段是包含在请求和响应报文中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息。
一,Allow
该首部用来告知客户端 服务器对请求报文中URI指定资源 支持的方法。
举例:
Allow:GET,HEAD
(1)当服务器接收到不支持的HTTP方法时,会以状态码 405 Method Not Allowed 作为相应返回。
(2)与此同时,还会把所有能支持的HTTP方法放在Allow首部字段中一并返回。
二,Content-Encoding
该首部字段会告知客户端 服务器对实体的主体部分选用的内容编码方式。
举例:
Content-Encoding:gzip
(1)上例说明服务器对实体主体的内容编码方式为gzip
(2)内容编码是指在不丢失实体信息的前提下所进行的压缩。
(3)客户端在接收到响应时会按照gzip的解压方式进行实体主体的还原。
*主要采用的四种内容编码方式:
gzip
compress
deflate
identity
三,Content-Language
该首部用来告知客户端,实体主体使用的自然语言。
举例:
Content-Language:zh-CN(中文)
(1)上例说明实体主体采用的语言为中文,英文为 en-us
四,Content-Length
该首部字段表明了实体主体的大小。
举例:
Content-Length:15000 (字节)
(1)对实体主体进行内容编码时,不能再使用该首部字段。
五,Content-Location
该首部字段用来告知客户端,报文主体相对应的URI。
举例:
Content-Location:http://www.hackr.jp/index-ja.html
(1)该首部字段告知的是返回资源对应的URI
(2)Location首部字段一般都是用来告知资源转移后的地址
(3)比如,对于使用Accept-Language的请求报文,允许资源为英文,但URI指定的却是中文版的资源,此时响应会返回英文版的资源,并且首部字段Content-Location内会写明英文版资源的URI。
六,Content-MD5
客户端会对接收的报文主体执行相同的MD5算法,然后与首部字段Content-MD5的字段值比较,用来确保资源传输的完整性与准确性。
举例:
Content-MD5:faja5gh6GS7SGjgSAJ8s==
(1)对报文主体执行MD5算法获得128位二进制数
(2)再通过Base64编码后将结果写入Content-MD5字段值(是因为HTTP首部无法记录二进制值,所以要通过编码处理)
(3)为确定报文的有效性,客户端会再执行一次相同的MD5算法,计算出来的值与Content-MD5的字段值作比较后,便可判断出报文主体的准确性
*采用该方法无法查证恶意篡改,因为实体主体可以被篡改,那么同时意味着Content-MD5的字段值也可以被重新计算然后篡改。
七,Content-Range
针对范围请求,该首部字段会告知客户端作为响应返回的实体哪个部分符合范围请求。
举例:
响应报文:
HTTP/1.1 206 Partial Content
Date: Wed, 04 Jul 2012 07:08:03 GMT
Content-Range:bytes 5001-10000/10000
Content-Length:5000
Content-Type:image/jpeg
(1) 字段值的单位为字节,信息包含当前发送部分及整个实体的大小。
八,Content-Type
该首部字段说明了实体主体内对象的媒体类型。
举例:
Content-Type:text/html; charset=UTF-8
(1)类型/子类型
(2)charset=字符集
九,Expires
该首部字段用来告知客户端资源失效的日期。
举例:
Expires:Wed,04 Jul 2012 08:26:05 GMT
(1)缓存服务器在接收到含有该首部字段的响应后会以缓存的形式来应答请求。
(2)如果时间超过该首部字段字段值指定的时间,会再次将请求发送至服务器。
(3)如果不想由缓存返回响应,可以将该首部字段的字段值赋成源服务器返回响应的时间。
(4)优先级小于max-age
十,Last-Modified
该首部字段用来告知客户端,资源最后一次更新的时间。
举例:
Last-Modified:Wed,04 Jul 2012 08:26:05 GMT
(1)一般来说字段值指示的就是Request-URI指定资源被修改的时间
(2)但是,类似使用CGI脚本进行动态数据处理时,改制有可能会变成数据最终修改的时间。
一,Allow
该首部用来告知客户端 服务器对请求报文中URI指定资源 支持的方法。
举例:
Allow:GET,HEAD
(1)当服务器接收到不支持的HTTP方法时,会以状态码 405 Method Not Allowed 作为相应返回。
(2)与此同时,还会把所有能支持的HTTP方法放在Allow首部字段中一并返回。
二,Content-Encoding
该首部字段会告知客户端 服务器对实体的主体部分选用的内容编码方式。
举例:
Content-Encoding:gzip
(1)上例说明服务器对实体主体的内容编码方式为gzip
(2)内容编码是指在不丢失实体信息的前提下所进行的压缩。
(3)客户端在接收到响应时会按照gzip的解压方式进行实体主体的还原。
*主要采用的四种内容编码方式:
gzip
compress
deflate
identity
三,Content-Language
该首部用来告知客户端,实体主体使用的自然语言。
举例:
Content-Language:zh-CN(中文)
(1)上例说明实体主体采用的语言为中文,英文为 en-us
四,Content-Length
该首部字段表明了实体主体的大小。
举例:
Content-Length:15000 (字节)
(1)对实体主体进行内容编码时,不能再使用该首部字段。
五,Content-Location
该首部字段用来告知客户端,报文主体相对应的URI。
举例:
Content-Location:http://www.hackr.jp/index-ja.html
(1)该首部字段告知的是返回资源对应的URI
(2)Location首部字段一般都是用来告知资源转移后的地址
(3)比如,对于使用Accept-Language的请求报文,允许资源为英文,但URI指定的却是中文版的资源,此时响应会返回英文版的资源,并且首部字段Content-Location内会写明英文版资源的URI。
六,Content-MD5
客户端会对接收的报文主体执行相同的MD5算法,然后与首部字段Content-MD5的字段值比较,用来确保资源传输的完整性与准确性。
举例:
Content-MD5:faja5gh6GS7SGjgSAJ8s==
(1)对报文主体执行MD5算法获得128位二进制数
(2)再通过Base64编码后将结果写入Content-MD5字段值(是因为HTTP首部无法记录二进制值,所以要通过编码处理)
(3)为确定报文的有效性,客户端会再执行一次相同的MD5算法,计算出来的值与Content-MD5的字段值作比较后,便可判断出报文主体的准确性
*采用该方法无法查证恶意篡改,因为实体主体可以被篡改,那么同时意味着Content-MD5的字段值也可以被重新计算然后篡改。
七,Content-Range
针对范围请求,该首部字段会告知客户端作为响应返回的实体哪个部分符合范围请求。
举例:
响应报文:
HTTP/1.1 206 Partial Content
Date: Wed, 04 Jul 2012 07:08:03 GMT
Content-Range:bytes 5001-10000/10000
Content-Length:5000
Content-Type:image/jpeg
(1) 字段值的单位为字节,信息包含当前发送部分及整个实体的大小。
八,Content-Type
该首部字段说明了实体主体内对象的媒体类型。
举例:
Content-Type:text/html; charset=UTF-8
(1)类型/子类型
(2)charset=字符集
九,Expires
该首部字段用来告知客户端资源失效的日期。
举例:
Expires:Wed,04 Jul 2012 08:26:05 GMT
(1)缓存服务器在接收到含有该首部字段的响应后会以缓存的形式来应答请求。
(2)如果时间超过该首部字段字段值指定的时间,会再次将请求发送至服务器。
(3)如果不想由缓存返回响应,可以将该首部字段的字段值赋成源服务器返回响应的时间。
(4)优先级小于max-age
十,Last-Modified
该首部字段用来告知客户端,资源最后一次更新的时间。
举例:
Last-Modified:Wed,04 Jul 2012 08:26:05 GMT
(1)一般来说字段值指示的就是Request-URI指定资源被修改的时间
(2)但是,类似使用CGI脚本进行动态数据处理时,改制有可能会变成数据最终修改的时间。
相关文章推荐
- Http协议基础之实体首部字段
- HTTP学习笔记8 实体首部字段及其他首部字段(Cookie)
- HTTP实体首部字段类型详解
- http协议(十)实体首部字段
- HTTP详解--响应首部字段(11)
- 由于Mybatis实体数据字段不匹配而查不到的解决办法
- EOS Platform7.6实体有字段默认值为null,调用queryEntitiesByTemplate,执行报错
- Http协议基础之HTTP通用首部字段
- 使用T4模板为EF框架添加实体根据数据库自动生成字段注释的功能
- java中使用反射获取pojo(实体)类的所有字段值
- 给ef6的实体模型 edmx文件加字段注释
- HTTP详解--通用首部字段解析(九)
- 动态实体、动态字段设计
- Http首部字段
- PB6.5改变字段长度时
- 将List中的实体按照某个字段进行分组的算法 3ff0
- HTTP详解--响应首部字段(11)
- JPA查询实体部分字段
- hibernate @Transeit 如何在映射实体中添加非数据库字段
- List实体集合更改任意Model中某一个字段的值,其他Model值也一起变了,引用类型和值类型的问题