一、HTTP 首部字段传递的信息
HTTP首部字段是构成HTTP报文的要素之一,在客户端与服务器之间以HTTP协议进行通信的过程中,无论是请求还是响应都会使用首部字段,使用首部字段是为了给浏览器和服务器提供报文主体大小,所使用的语音,认证信息等内容。
首部字段结构:
首部字段名:字段值
1.通用首部字段:(标绿的为常用字段)
举例1:
Cache-Control:no-cache
Cache-Control:no-store
使用no-cache指令的目的事为了防止从缓存中返回过期的资源,缓存会向源服务器进行有效期确认后处理资源。no-store才是真正地不进行缓存。当使用no-store指令时,暗示请求(和对应地响应)或响应中包含机密信息。
举例2:
Connection:close
Connection:keep-alive
Connection:upgrade
Connection控制不再转发给代理地首部字段,管理持久连接。HTTP/1.1版本的默认连接都是持久连接,因此,客户端会在持久连接上连续发送请求。
举例3:
Date:Tue,03-Jul-12 04:40:59 GMT
Date表示创建HTTP报文的日期和时间
举例4:
Transfer-Encoding:chunked
Transfer-Encoding规定了传输报文主题采用的编码方式。chunked表示使用分块传输编码。
2.请求首部字段:(标绿的为常用字段)
举例1:
Accept:text/html
Accept:text/plain
Accept:text/css
Accept:application/xhtml+xml
Accept:application/xml
指定文本文件:
text/html,ext/plain,text/css,application/xhtml+xml,application/xml...
指定图片文件:
image/jpeg,image/gif,image/png...
指定视频文件:
video/mpeg,video/quicktime...
指定应用程序的二进制文件:
application/octet-stream,application/zip...
Accept首部字段可通知服务器,用户代理能够处理的媒体类型级媒体类型的相对优先级
举例2:
Accept-Charset:iso-8859-5,unicode-1-1;q=0.8
Accept-Charset首部字段可以用来通知服务器用户代理支持的字符集及字符集的相对优先顺序,权重q值来表示相对优先级。
举例3:
Accept-Encoding:gzip,deflate,compress
Accept-Encoding首部字段用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序。可一次性指定多种内容编码。
举例4:
Accept-Language:zh-cn,zh;q=0.7,en-us,en;q=0.3
Accept-Language用来告知服务器用户代理能够处理的自然语言集(包括中文或英文等)。以及自然语言集的相对优先级,可一次性指定多种自然语言集。
举例5:
Authorization:Basic dWVub3jfkjvdkjdkYXNdkj==
Authorization用来告知服务器,用户代理的认证信息(证书值)。
举例6:
HOST:www.hackr.jp
图解:虚拟主机运行在同一个ip上,因此使用首部字段Host加以区分。
首部Host会告知服务器,请求的资源所处的互联网主机名和端口号。Host首部字段在HTTP/1.1规范内是唯一一个必须包含在请求内的首部字段。
举例7:
Range:bytes=5001-10000
Range字段告知服务器资源的指定范围,示例中表示请求获取从第5001字节到10000字节的资源。
举例8:
Refer:http://www.hackr.jp/index/htm
首部字段Refer会告知服务器请求的原始资源URI。因为原始资源的URI中的查询字符串可能含有ID和密码等保密信息。要是写进Refer转发给其他服务器,则有可能导致保密信息的泄露。
举例9:
User-Agent:Mozilla/5.0....
User-Agent会创建请求对的浏览器和用户代理名称等信息传达至服务器。
3.实体首部字段:(标绿的为常用字段)
实体首部字段是包含在请求报文和响应报文中的实体部分所适用的首部,用于补充内容的更新时间等与实体相关的信息。
注:在请求和响应两方的HTTP报文中都含有与实体相关的首部字段。
举例1:
Allow:GET,HEAD
首部字段Allow用于通知客户端能够支持Request-URI指定资源的所有HTTP方法。
举例2:
Content-Encoding:gzip
首部字段Content-Encoding会告知客户端服务器对实体的主体部分选用的内容编码方式。内容编码是指在不丢失实体信息的前提下所进行的压缩。
举例3:
Content-Language:zh-CN
首部字段Content-Language会告知客户端,实体主体适用的自然语言(指中文或英文等)。
举例4:
Content-Location:http://www.xxx/xxx.html
首部字段Content-Location给出与报文主体部分相对应的URI。和首部字段Location不同,Content-Location表示的是报文主体返回资源对应的URI.
举例5:
Content-Range:bytes 5001-10000/10000
含义:全部10000字节内,先发送5001-10000字节的资源。
返回响应使用的首部字段Content-Range,能告知客户端作为响应返回的实体的哪个部分符合范围请求。字段值以字节为单位,表示当前发送部分及整个实体大小。