美文网首页
HTTP报文头简析

HTTP报文头简析

作者: kinglong1984 | 来源:发表于2018-06-18 12:46 被阅读14次

    通用首部(请求/响应):

    提供最基本的信息,请求报文和响应报文都可能包含这些信息。

    Connection   指定HTTP持久连接的选项。Connection:keep-alive , 开启HTTP持久连接,HTTP 1.1默认值;Connection:close ,  关闭HTTP持久连接,HTTP 1.0默认值。

    Date        表示消息发送的时间,缓存在评估响应的新鲜度时要用到,时间的描述格式由RFC822定义。例如,Date: Thu, 11 Jul 2015 15:33:24 GMT。

    Transfer-Encoding   用来改变报文格式,它不但不会减少实体内容传输大小,甚至还会使传输变大。最新的 HTTP 规范里,只定义了一种编码传输:分块编(chunked)

    在头部加入 Transfer-Encoding: chunked 之后,就代表这个报文采用了分块编码。这时,报文中的实体需要改为用一系列分块来传输。每个分块包含十六进制的长度值和数据长度值独占一行,长度不包括它结尾的 CRLF(\r\n),也不包括分块数据结尾的 CRLF。最后一个分块长度值必须为0,对应的分块数据为空,表示实体结束。

    HTTP协议中使用Content-Length这个头来告知数据的长度。然而,在数据下行(服务器到客户端)的过程中,Content-Length的方式要预先在服务器中缓存所有数据,然后所有数据再一股脑儿地发给客户端。

    如果要一边产生数据,一边发给客户端,WEB 服务器就需要使用"Transfer-Encoding: chunked"这样的方式来代替Content-Length。

    Trailer   采用分块传输编码方式时,用于列出报文拖挂部分的首部集合。 

    MIME-Version    给出发送端使用的MIME版本。

    Via    显示报文经过的中间节点 代理、网关。

    Update   给出发送端可能想要“升级”使用的新版本协议

    Cache-Control (随报文传送缓存指示)

    缓存请求指令:客户端可以在HTTP请求中使用的标准 Cache-Control 指令。

    Cache-Control: max-age=

    Cache-Control: max-stale[=]

    Cache-Control: min-fresh=

    Cache-control: no-cache

    Cache-control: no-store

    Cache-control: no-transform

    Cache-control: only-if-cached

    缓存响应指令:服务器可以在响应中使用的标准 Cache-Control 指令。

    Cache-control: must-revalidate

    Cache-control: no-cache

    Cache-control: no-store

    Cache-control: no-transform

    Cache-control: public

    Cache-control: private

    Cache-control: proxy-revalidate

    Cache-Control: max-age=

    Cache-control: s-maxage=

    实体首部(请求/响应):

    描述HTTP报文的负荷,请求报文和响应报文都可能包含这些信息。

    Allow    可以对此实体执行的请求方法

    Location    告知客户端实体处于何处,用于将客户端定向到资源的URL上。

    Expires    过期时间,该时间后实体不再有效。

    Last-Modified    该实体最后一次被修改的日期和时间。

    ETag    实体标记 某个特定资源版本的标识符

    Content-Type    该主题对象的类型。如 text/html,text/xml,image/jpeg,video/mpeg4,video/mpg,application/pdf,application/vnd.android.package-archive,application/octet-stream(二进制流)。

    Content-Length    主体的尺寸。

    Content-Location    资源所处的位置。

    Content-Language    理解主体最宜的语言。

    Content-Encoding    通常用于对实体内容进行压缩编码,目的是优化传输,例如用 gzip 压缩文本文件,能大幅减小体积。jpg / png 这类文件一般不开启,因为图片格式已经是高度压缩过的。

    Content-MD5    主体的MD5校验和。

    Content-Range 在整个资源中,此实体表示的字节范围。

    Content-Base    解析资源中相对URL时使用的基础URL。

    请求头:

    Client-IP、Host、Referer、User-Agent、UA-Color/UA-CPU/UA-Pixels/UA-OS

    Accept、Accept-Charset、Accept-Encoding、Accept-Languge

    请求首部 fiddler抓取的请求头

    响应头:

    Age、Retry-After、Server、Warning  Accept-Ranges、Vary、Proxy-Authenticate、Set-Cookie、Set-Cookie2、WWW-Authenticate

    响应首部 fiddler抓取的响应头

    相关文章

      网友评论

          本文标题:HTTP报文头简析

          本文链接:https://www.haomeiwen.com/subject/gccneftx.html