http响应报文

HTTP响应报文格式
status-line 格式为:HTTP版本号 response-code response-phrase
headers<0个或多个>
<blank line>
body

响应头 status-line部分

  使用tcpdump截取下来的一段报文

E..%..@.'..&.w..
.....P..H]M9..N.
...z...........6
.T..HTTP/1.1.304
.Not.Modified..D
ate:.Sat,.07.Nov
.2015.09:22:57.G
MT..Server:.Apac
he/2.4.6.(CentOS
).OpenSSL/1.0.1e
-fips.PHP/5.4.16
.mod_perl/2.0.9d
ev.Perl/v5.16.3.
.Connection:.Kee
p-Alive..Keep-Al
ive:.timeout=5,.
max=100..ETag:."
7e-523ede518b4e4

另一个响应报文

E....U@.........
.....P...Pk.....
....y........l..
.j..HTTP/1.1.200
.OK..Cache-Contr
ol:.private..Con
tent-Type:.text/
html;.charset=ut
f-8..Content-Enc
oding:.gzip..Var
y:.Accept-Encodi
ng..Server:.Micr
osoft-IIS/8.5..X
-AspNet-Version:
.4.0.30319..X-Po
wered-By:.ASP.NE
T..Date:.Sat,.07
.Nov.2015.10:58:
35.GMT..Content-
Length:.8413....
.............`.I
.%&/m.{.J.J..t..
.`.$..@.........
iG#).*..eVe]f.@.
.....{....{....;
.N'...?\fd.l..J.
..!....?~|.?"~..
7N...O.<y...<M..
.<...[.nQ...>...
....WWW..{......
.......#j.x.g...

  

  以此来分析

  响应报文头部的第一行叫状态行,以HTTP版本号开始,后面三位数字为响应代码,接着是易读的响应短语

状态行:HTTP/1.1.304.Not.Modified

  响应码如下 详见:这里

1 1xx消息
2 2xx成功
3 3xx重定向
4 4xx客户端错误
5 5xx服务器错误

   之后是首部字段 使用空行将所有首部字段跟报文主体分割开来 格式:字段名: 空格 字段值

  首部字段如下

通用首部字段

首部字段名           说明
CacheControl         控制缓存的行为
Connection         允许客户端和服务器指定与请求/响应连接有关的选项
Date             报文创建时间
Progma            报文指令
Trailer           报文末端的首部一览
Transfer-Encoding     指定报文主体的传输编码方式
Upgrade           升级为其它协议
Via              代理服务器的相关信息
Warning           错误通知

响应首部字段

首部字段名     说明
Accept-Ranges     是否接受字节范围请求
Age     推算资源创建经过时间
Etag     资源的匹配信息
Location     令客户端重定向至指定URI
Proxy-Authenticate     代理服务器对客户端的认证信息
Retry-After     对再次发起请求的时机要求
Server     HTTP服务器的安装信息
Vary     代理服务器缓存的管理信息
WWW-Authenticate     服务器对客户端的认证信息
实体首部字段

首部字段名     说明
Allow     资源可支持的HTTP方法
Content-Encoding     实体主体适用的编码方式
Content-Language     实体主体的自然语言
Content-Length     实体主体的大小
Content-Location     替代对应资源的URI
Content-MD5     实体主体的报文摘要
Content-Range     实体主体的位置范围
Content-Type     实体主体的媒体类型
Expires     实体主体过期的日期时间
Last-Modified     资源的最后修改日期时间
请求首部字段

首部字段名     说明
Accept     用户代理可处理的媒体类型
Accept-Charset     优先的字符集
Content-Encoding     优先的内容编码
Content-Language     优先的语言
Authorization     Web认证信息
Expect     期待服务器的特定行为
From     用户的电子邮箱地址
Host     请求资源所在服务器
If-Match     比较实体标记(ETag)
If-Modified-Since     比较资源的更新时间
If-None-Match     比较实体标记(与If-Match相反)
If-Range     资源未更新时发送实体Byte的范围请求
If-Unmodified-Since     比较资源的更新时间(与If-Modified-Since相反)
Max-Forwards     最大传输逐跳数
Proxy-Authorization     代理服务器要求客户端的认证信息
Range     实体的字节范围请求
Referer     对请求中URI的原始获取方
TE     传输编码的优先级
User-Agent     HTTP客户端程序的信息

 

一个回车换行\r\n分割开首部和body

 

posted @ 2015-11-07 18:23  孙悟坑  阅读(598)  评论(0编辑  收藏  举报