美文网首页
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报文头简析

    通用首部(请求/响应): 提供最基本的信息,请求报文和响应报文都可能包含这些信息。 Connection 指定H...

  • HTTP报文头

    Content-Type:.doc application/msword.docx applicati...

  • flask学习笔记(一):回顾HTTP通信

    参考博客 HTTP 请求报文 响应报文 一、HTTP请求报文 1. 起始行 2. 请求头 headers 2.1....

  • 关于http报文

    1.http请求报文 首先说http请求的报文是什么样的,http报文包括请求行、请求头、请求体(请求正文)。 请...

  • HTTP报文格式及相关方法

    HTTP报文 请求报文 HTTP 请求报文由3部分组成(请求行+请求头+请求体) 请求行包括:请求方法、请求URL...

  • HTTP基础知识整理

    1. HTTP请求报文格式 HTTP请求报文分为三部分:请求行、请求头和请求体 注:部分文章也将HTTP请求报文分...

  • HTTP请求行、请求头、请求体详解

    HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ②为请...

  • HTTP请求行、请求头、请求体详解

    HTTP请求报文解剖 HTTP请求报文由3部分组成( 请求行+请求头+请求体 下面是一个实际的请求报文: ①是请求...

  • 2019-03-18 HTTP请求报文解剖

    HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请...

  • 2019-03-18 原 @RequestBody和@Reque

    HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请...

网友评论

      本文标题:HTTP报文头简析

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