十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

tcp/ip-HTTP-Header-消息报头

上一篇 / 下一篇  2011-06-01 11:16:54 / 个人分类:HTTP

:LKdT\2H0HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。51Testing软件测试网,[DD*J4~ e+o8n;M
请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),
O^'\] qO&Q]0消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。51Testing软件测试网J T7e\-Ga

51Testing软件测试网~2\:w5fGw

HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。51Testing软件测试网 r,ew y^DQ b

]/EqAv ZBf0每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的
"JO%lq1bF$~K0头标由主键/值对组成。它们描述客户端或者服务器的属性、被传输的资源以及应该实现连接

j&GK)wr051Testing软件测试网/[7D@C7n @

1.通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。51Testing软件测试网/?+CfQRpC
2.请求头标:允许客户端传递关于自身的信息和希望的响应形式。51Testing软件测试网2E| l8za-_ [p^
3.响应头标:服务器和于传递自身信息的响应。
;}'o+q2Z ^.CLd04.实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。51Testing软件测试网'~*V8uL]#m

#^:U/_B)d6wZ01、普通报头 (General Header)

?t{t6Xq051Testing软件测试网XkB|!YnUx#S

在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息
&Y/_0Jq:Ku0对请求头域的扩展要求通讯双方都支持,如果存在不支持的请求头域,一般将会作为实体头域处理

#ZR mnE e:n Q9]0
Cache-Control
Pi l S"i7@ r0    Connection
8j3Mo"]JNC{0    Date
5Cl5^'l:ckFCa0    Pragma
H;p;EB-SM[,k%H0    Transfer-Encoding
J4iH8ij PPu0    Upgrade51Testing软件测试网+|"[Vd*p`wj r[|
    Via

@/yQug h'r#t02、请求报头 (Request Headers)

xd EPPs d5E0

#]J#B5_%Ck a0请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息51Testing软件测试网pmvY`1x'h
对请求头域的扩展要求通讯双方都支持,如果存在不支持的请求头域,一般将会作为实体头域处理

`6Wd4Pp\0
Accept51Testing软件测试网9K;u)duL4HE]
    Accept-Charset
FscTMg"l0    Accept-Encoding
c!Vv6ysj0    Accept-Language
4r!j}.b ~ w^0    Authorization
0D&HcHUT!n6T s0    Host51Testing软件测试网1x5c:J(v'U
    User-Agent51Testing软件测试网YR q#MQ;MS unn
    From
s6hg'{fW$d0    If-Modified-Since51Testing软件测试网1p4p#W0y6G)kyhn.\
    If-Match51Testing软件测试网%hI6leM_"G2r|
    If-None-Match
hIzf'Sz4MpK*m!W0    If-Range
gEKI5[2Kf0    If-Unmodified-Since
A v3a(mJ ]0    Max-Forwards51Testing软件测试网 Nd)q*XP4O#g ]n
    Proxy-Authorization51Testing软件测试网 r P5kZ/~6[Z;}L&zf\
    Range
`D&XX-zr0    Referer

0ue#d5S5@.oK:ve,Q03、响应报头 (Response Headers)

in+I)d8[Z]#x051Testing软件测试网Y(U%V*Q B$H-^

响应报头允许服务器传递不能放在状态行中的附加响应信息,
"^5F+^/W+VG0以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息51Testing软件测试网 x;MU:@;D M9p;?
对响应头域的扩展要求通讯双方都支持,如果存在不支持的响应头域,一般将会作为实体头域处理51Testing软件测试网+I1Mr z0`$q5\[:jM*i

Location
uF$cE3n{}0    Server
8h+ko)Af#]0    WWW-Authenticate51Testing软件测试网SY7P H+tuK \
    Age51Testing软件测试网L[@3\(@1LQs
    Proxy-Authenticate
UVX4G`s l0    Public51Testing软件测试网\[LeE\!\_
    Retry-After51Testing软件测试网 ^(}[)Med
    Vary
s PH$qR$Hp0    Warning
51Testing软件测试网C3Mz"{YT

4、实体报头 (Entity Header)51Testing软件测试网Bd-FeB3I

-`3LXy7jJf3d jB0请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,
2G4E{0_j0但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。51Testing软件测试网4E q7ZA.hQ0]x
实体报头定义了关于实体正文(eg:有无实体正文)和请求所标识的资源的元信息

5Vf&VR+f]O0
Content-Encoding
Ao3} B7H-n(Mx0    Content-Language51Testing软件测试网7j[5T?6F!k|
    Content-Length
?ET,y7RD(T0    Content-Type51Testing软件测试网~ h(n$mE
    Last-Modified51Testing软件测试网}xq(d:gRnsz
    Expires51Testing软件测试网 Tr@:U6YAZA
    Allow
+@ C8v T k)~|0    Content-Base
A U(u|7b#@r0    Content-Location51Testing软件测试网C:iR"L0o4|(Z}
    Content-MD551Testing软件测试网-~'P.uc%ox#i
    Content-Range51Testing软件测试网1RH?)r)Zn
    Etag
,@ Pxw7V+}0    extension-header
51Testing软件测试网Q1m6d.b/MJa}iG$H

Accept
?}}r&j%Y(H0客户端可以处理的媒体类型,按优先级排序,在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。

m f*[+A)uG l l(D%ix0
Accept: image/jpeg,image/png,*/*
51Testing软件测试网QM t'z)BW

Accept-Language51Testing软件测试网yYU(^x{ L U&qiDn
客户端接受的语言列表。51Testing软件测试网-nH w~)oN X"`

Accept-Language: zh-cn,zh;q=0.5
51Testing软件测试网.Hle:j:e5N r3Wr

Accept-Ranges51Testing软件测试网8e1wls0rC-S
一个响应头标,它允许服务器指明:将在给定的偏移和长度处,为资源组成部分的接受请求。51Testing软件测试网)W!U`:uq
该头标的值被理解为请求范围的度量单位。

W(rDVEd0
Accept-Ranges: bytes
]He t:z4vL0    Accept-Ranges: none
51Testing软件测试网 Qqc M$Q^!ku Y

Accept-Encoding
g`$|"TE+A!O!X0客户端编码。

FxQ9Pd0
Accept-Encoding: gzip,deflate
51Testing软件测试网/JzKl$V

Accept-Charset
+BHGq;@(M0客户端可以处理的字符集,按优先级排序,在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。51Testing软件测试网1[Q*Q+l!Ij*r

Accept-Charset: iso-8859-1,*,utf-8

\ D2y7y _'Q;Rc#|4S0Age51Testing软件测试网xAS\Jp'W+f4ss
允许服务器规定自服务器生成该响应以来所经过的时间长度,以秒为单位。
:E@yM!w~0该头标主要用于缓存响应。51Testing软件测试网$J+@.r'MoD1`

Age: 30

MW'C'?4v&sWH"F(k0Allow
#uv/vV"Na{b _~T0一个响应头标,它定义一个由位于请求URI中的次源所支持的HTTP方法列表。51Testing软件测试网`9|4V:rG8ha-Pl0z

Allow: GET,PUT

0nf;|ot9igzL2F:a0Authorization51Testing软件测试网c6F"d5iRE3Br\
一个响应头标,用于定义访问一种资源所必需的授权(域和被编码的用户ID与口令)。51Testing软件测试网} xvl"O)mm

Authorization: Basic YXV0aG9yOnBoaWw=

}6r.y6?5y@0Cache-Control
`RpLB;c0缓存机制。
&A lf!nK/g/B0在请求消息或响应消息中设置 Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。51Testing软件测试网(]Oc#~^X^ j
请求时的缓存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached,
-a$nk5`.G#x0响应消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。51Testing软件测试网8N? n;c!B^I&BO

Cache-Control: max-age=3600

*f(d^m7O mC'U0各个消息中的指令含义如下:51Testing软件测试网o%v^x:x Fc0S
Public51Testing软件测试网E0`,QrJ@J
指示响应可被任何缓存区缓存。51Testing软件测试网b Ov#h)k5wI
Private51Testing软件测试网Me X n e
指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。51Testing软件测试网5@sm __3t
这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
%sa7j`,Yyy0no-cache51Testing软件测试网 L;MR4c d'qP
指示请求或响应消息不能缓存
+[n6sEw3O-WZ0no-store51Testing软件测试网;b|*nPj cI'}.ah/s
用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。51Testing软件测试网I7s\b ]6L9w v
max-age
p6S5C$TW*zU0指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。51Testing软件测试网Db5`!U5rZ+L
min-fresh
+S8[5OY!yQH9L0指示客户机可以接收响应时间小于当前时间加上指定时间的响应。51Testing软件测试网6? K-@RM w)]8ygdJ1k
max-stale51Testing软件测试网YYEVy R/g.h
指示客户机可以接收超出超时期间的响应消息。51Testing软件测试网!V7E|tT8X
如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

P0p"R/nW4?#AT.Y v051Testing软件测试网8rri]8MHt2|A

Content-Length
n&pKc;i t0表示实际传送的字节数
3x!h!l~jl6\D\ G/R,T0只有当浏览器使用持久HTTP连接时才需要这个数据51Testing软件测试网!GB%XM @*]6q

\7Y;ydr[ }0Content-Encoding
k)K G;|u7j(Ou;P i0文档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。51Testing软件测试网X q9]@&\,C)Bj
利用gzip压缩文档能够显著地减少HTML文档的下载时间

J%k/{)`tqc"N.N0

[E0N t$BtR_0Connection
7J%` E ~bq0是否保存socket连接为开放。51Testing软件测试网 W k'ajf4F;aq

Connection: close51Testing软件测试网a Y#yP6I
    Connection: keep-alive
51Testing软件测试网o&v2Lz:| rY1}-z|

Cookie
-nT5kQIDUq%K3IBe0网站cookie51Testing软件测试网`'a"g3h2v

Cookie: PHPSESSID=d2f86046854e13ca02d9eef6c2dcb826

\i$F|vn3[1AQ0Content-Type
4R|9J D@ j Z0用于向接收方指示实体的介质类型51Testing软件测试网&k4p3V l.M2e,u4xn)]

Content-Type: text/html

lE p)x6W0Content-Base51Testing软件测试网ZZ uTg x#^
一种定义基本URI的实体头标,为了在实体范围内解析相对URLs。51Testing软件测试网yv1p8~RK
如果没有定义Content-Base头标解析相对URLs,使用Content-Location URI(存在且绝对)或使用URI请求。51Testing软件测试网)y4zu d@qm

Content-Base: Http://www.myweb.com

I j Tv.CG"c\4@0Content-Location
;H(OQ/{ ^P'A)j0指定包含于请求或响应中的资源定位(URI)。51Testing软件测试网%m8^4FO7Fq9ci
对URL也作为被解析实体的相对URL的出发点。

H5RmjI!R b0
Content-Location: http://www.myweb.com/news

M(S+SAt;O f6J0`^f0Content-MD5
l8u'q2K,b(L6uQ)w&B0实体的一种MD5摘要,用作校验和。
3Z s9m voMWu{/z0发送方和接受方都计算MD5摘要,接受方将其计算的值与此头标中传递的值进行比较。

Z.d F_.c2`D @051Testing软件测试网7u O.O2QF!i

Content-Range51Testing软件测试网{4^A.f,B
随部分实体一同发送;标明被插入字节的低位与高位字节偏移,也标明此实体的总长度。

u9z`3e}{.@.w0
Content-Range: 1001-2000/5000
51Testing软件测试网UIu0A_d{

Date51Testing软件测试网!Ec|-| lIP
Date头域表示消息发送的时间,时间的描述格式由rfc822定义。
7Yi)c7Z)Z `0Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区

b f3l/c)e+Ff0
Date: Fri, 05 Dec 2008 03:17:21 GMT
51Testing软件测试网8Xah:pR/zd)B2K

Expires
?L^C tH0指定实体的有效期, 过期时间51Testing软件测试网?7}YSa9O

Expires: Mon,05 Dec 2008 12:00:00 GMT
51Testing软件测试网v-W*d TQL

ETag
#gtuL?[Z0一种实体头标,它向被发送的资源分派一个唯一的标识符。51Testing软件测试网 cQ F+^S { K
对于可以使用多种URL请求的资源,ETag可以用于确定实际被发送的资源是否为同一资源。

"{1sO"o~}0
ETag: '208f-419e-30f8dc99'

~0E|/y1O_6Lc/I;mu0Form
jd"g mCvu!pY%z0一种请求头标,给定控制用户代理的人工用户的电子邮件地址。

7p i5[uU'~8y1Vk0
From: webmaster@myweb.com

&SLTHjn C0Host51Testing软件测试网lJ{br.Xe'n
被请求资源的主机名。对于使用HTTP/1.1的请求而言,此域是强制性的。

xy ]"Oq [0
Host: www.myweb.com

$K!IKr/m2{&c0If-Modified-Since51Testing软件测试网%~1z `EO$^!I
记录页面最后修改时间,客户端往服务器发送51Testing软件测试网Z [M{7]0B"Ey

If-Modified-Since: Wed, 03 Dec 2008 03:39:18 GMT

)Z?)p3\&t1V0If-Unmodified-Since
H+X0b%}"Ipg0只有自指定的日期以来,被请求的实体还不曾被修改过,才会返回此实体。51Testing软件测试网k7UukF7rq6Oc c

If-Unmodified-Since: Mon,10PR 18:42:51 GMT
51Testing软件测试网 N.Z8j9Jw

If-Match51Testing软件测试网!f1iS/|)@ZT0`
如果包含于一个请求,指定一个或者多个实体标记。只发送其ETag与列表中标记区配的资源。51Testing软件测试网[b_s2P1T

If-Match: '208f-419e-308dc99'
51Testing软件测试网1~\'xXj&Q R%[Ob

If-None-Match
p5p B"A8{9jm*l(j0资源的ETag不与列表中的任何一个条件匹配,操作才执行。

K+x6LQ]0
If-None-Match: "502d78280-2cc2-45d1c30522580"
51Testing软件测试网?^-l6`/]L.l i9p

If-Range
P!^2k,v6r.nZ.J4pE;_2uN0指定资源的一个实体标记,客户端已经拥有此资源的一个拷贝。必须与Range头标一同使用。51Testing软件测试网2C:a)b;j)x]
如果此实体自上次被客户端检索以来,还不曾修改过,那么服务器只发送指定的范围,否则它将发送整个资源。51Testing软件测试网j(L"g1_,V.}7l

Range: byte=0-49951Testing软件测试网3TYg{^'t [8VN0F
    If-Range: '208f-419e-30f8dc99'
51Testing软件测试网*M UkK*q&k

Keep-Alive
o#T#N}~$L0持续连接,出现后继请求时,避免建立或者重新建立连接。51Testing软件测试网/l iH8^$gl0\.]ULv

Keep-Alive: 300

U_4nG9N H I,y0Last-Modified51Testing软件测试网&NT7U^.uSwq8_
指定被请求资源上次被修改的日期和时间。

7Q\G\UuG0
Last-Modified: Mon,10PR 18:42:51 GMT

(DVT^L(b0Location
~#n A4?#_%N4P0对于一个已经移动的资源,用于重定向请求者至另一个位置。51Testing软件测试网Ji6K6T6A
与状态编码302(暂时移动)或者301(永久性移动)配合使用。51Testing软件测试网FMy-UCO X+^

Location: http://www2.myweb.com/index.jsp

8w7`$E*S+RC;M2zw%x!dl0Max-Forwards
8qubL4rv'^ C0一个用于TRACE方法的请求头标,以指定代理或网关的最大数目,该请求通过网关才得以路由。
![nC"u0^P0n E I0在通过请求传递之前,代理或网关应该减少此数目。51Testing软件测试网2lH;e5\B6`@

Max-Forwards: 3
51Testing软件测试网N(w!JAB/YI B7wX

Pragma51Testing软件测试网'FE8@8n*o3[_
用来包含实现特定的指令,最常用的是Pragma:no-cache。
g:\x1R:H0在HTTP/1.1协议中,它的含义和Cache-Control:no-cache相同

e _:n X"O&j \*j L0

$WB{7r2^,mP8V0Proxy-Authenticate
'\,\4i*D`NY4O|W0类似于WWW-Authenticate,便是有意请求只来自请求链(代理)的下一个服务器的认证。

Hc7h#Em0
Proxy-Authenticate: Basic realm-admin
51Testing软件测试网0pau*k0~Ul,y

Proxy-Proxy-Authorization
7Z2l nDA0类似于授权,但并非有意传递任何比在即时服务器链中更进一步的内容。51Testing软件测试网lj6z1ejy3j

Proxy-Proxy-Authorization: Basic YXV0aG9yOnBoaWw=
51Testing软件测试网{'J8UK9K8J-c(d

Public
-cY E+lr)B-hd B0列表显示服务器所支持的方法集。

E%F9@ r1G;xy7Y0
Public: OPTIONS,MGET,MHEAD,GET,HEAD
51Testing软件测试网#N|@)Wn ~m

Range
~;[.e$|'J0指定一种度量单位和一个部分被请求资源的偏移范围。

1PJ'f+p}a1K GC0
Range: bytes=206-5513
51Testing软件测试网.k$U1}1VOy b'Y

Refener51Testing软件测试网u;I@'`h ^9q
一种请求头标域,标明产生请求的初始资源。对于HTML表单,它包含此表单的Web页面的地址。

o8o M EG*{])v`,H@0
Refener: http://www.myweb.com/news/search.html
51Testing软件测试网'U1s ^6c3R

Retry-After51Testing软件测试网[4q+yJ~W$mo
一种响应头标域,由服务器与状态编码503(无法提供服务)配合发送,以标明再次请求之前应该等待多长时间。51Testing软件测试网)xA,@0b!X
此时间即可以是一种日期,也可以是一种秒单位。

y"KSa(vZ} F6i3B0
Retry-After: 18
51Testing软件测试网g sn2htP-D

Server51Testing软件测试网eg5{,Wr0K7a(U
服务器名字

PY)K@ Xr@$c&e0
Server: Apache/2.2.9 (Win32) PHP/5.2.6
51Testing软件测试网7SC6tTZjpe

Transfer-Encoding
5v:^Qa[5PD0一种通用头标,标明对应被接受方反向的消息体实施变换的类型51Testing软件测试网ud\1A/}^E
当不能预先确定报文体的长度时,不可能在头中包含Content-Length域来指明报文体长度,
GR"K|)["_2C0此时就需要通过Transfer-Encoding域来确定报文体长度。
3MX\$s'J%i(OQ0通常情况下,Transfer-Encoding域的值应当为chunked,表明采用chunked编码方式来进行报文体的传输。
HZ X ^7[D8`0chunked编码是HTTP/1.1 RFC里定义的一种编码方式,因此所有的HTTP/1.1应用都应当支持此方式。
jR:T~K'p ^3iV/R.pw0chunked编码的基本方法是将大块数据分解成多块小数据,每块都可以自指定长度51Testing软件测试网&T} znb:g\,Q|

Transfer-Encoding: chunked

ve}_Ip.W0R0User-Agent
){F4d }8QP+I2U;k:~0用户浏览器信息,定义用于产生请求的软件类型(典型的如Web浏览器)51Testing软件测试网,aAy$yXie}

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
51Testing软件测试网Z fLY`s

Upgrade
$z4y2kB&Qb0允许服务器指定一种新的协议或者新的协议版本,与响应编码101(切换协议)配合使用。

L9Dy y0eEdX2f:b0
Upgrade: HTTP/2.0

S`@ H5V} WB1|0Vary51Testing软件测试网7\(?/P?/K4[T%L
用于表示使用服务器驱动的协商从可用的响应表示中选择响应实体

.Ls@X@*i B.N0
Vary: Accept-Encoding

4M2A|i-{#C4F`0O6h0Via51Testing软件测试网CFC]](o8y
一个包含所有中间主机和协议的通用头标,用于满足请求。51Testing软件测试网(j$B:V/Cf(ub [)\1hq7@

Via: 1.0 fred.com, 1.1 wilma.com
51Testing软件测试网#c W.\uU0Y*Ma#n3l

Warning51Testing软件测试网:nP&l6^z qzO
用于提供关于响应状态补充信息的响应头标。51Testing软件测试网1W:|K,R ZD!k

Warning: 99 www.myweb.com Piano needs tuning

-`c"ce-|1|0www-Authenticate51Testing软件测试网/U-@+\g/TQ:wO)W
一个提示用户代理提供用户名和口令的响应头标,与状态编码401(未授权)配合使用。响应一个授权头标。

)jGb(Qg1WO0
www-Authenticate: Basic realm=zxm.mgmt
51Testing软件测试网$x.K(L I/v/kW

X-Cache
O:BC;su-qDH?i0表示 http request 是由 proxy server 回的51Testing软件测试网8yy"FJ(?
MISS 表示 proxy 無資料,代理動作
,~/|fjYA8~0HIT 表示 proxy 直接回應

8e?qr-?c#`0

TAG: HTTP-Header tcp-ip

 

评分:0

我来说两句

Open Toolbar