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

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

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

/x[n bW2DJ)r@7bJ0HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。51Testing软件测试网7sx~ ?y
请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),
i:pf#G]f0消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。51Testing软件测试网^[$mI @E {

51Testing软件测试网f-f8JAIe

HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。51Testing软件测试网^"qc3h e8EL$o sp

51Testing软件测试网 G1U6N"ui!C

每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的51Testing软件测试网!o%zRIQ
头标由主键/值对组成。它们描述客户端或者服务器的属性、被传输的资源以及应该实现连接

g5aU ZQ^ e8r051Testing软件测试网M,f kf0]

1.通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。51Testing软件测试网.r|~Lumc
2.请求头标:允许客户端传递关于自身的信息和希望的响应形式。
hS3xc\!S.B~03.响应头标:服务器和于传递自身信息的响应。51Testing软件测试网QH;[/\ f
4.实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。

M;wx B(~0

zI5v6NJ+GJk^;cV01、普通报头 (General Header)

,f3uN H_/j0

$y4I@:kRt1|{0在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息
T-~-lpc#zNRz0对请求头域的扩展要求通讯双方都支持,如果存在不支持的请求头域,一般将会作为实体头域处理51Testing软件测试网uj?IF^2{ r"d

Cache-Control51Testing软件测试网"ok^1T9k'h5k
    Connection
"U&{j:}0ud!fn!d0    Date51Testing软件测试网#e.@}Nmx.SU0y*X
    Pragma51Testing软件测试网8I bjG)Oe}q/N~tB
    Transfer-Encoding51Testing软件测试网.e'w#Vx `rR&a0|}
    Upgrade51Testing软件测试网DavD!`)SpV k'D
    Via
51Testing软件测试网g#H M%bJv2F8Y

2、请求报头 (Request Headers)

d9Hf|tY:Q0

xN ~7x.?%WH0请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息
J'Gv] lTTMSz0对请求头域的扩展要求通讯双方都支持,如果存在不支持的请求头域,一般将会作为实体头域处理51Testing软件测试网$@ A$e)^t^n

Accept51Testing软件测试网V+c%w;Z`QEm*nA
    Accept-Charset51Testing软件测试网&u8lY!k8V
    Accept-Encoding
%r*`Z^O'[5_0    Accept-Language51Testing软件测试网2Pput.Hxj-C$h
    Authorization51Testing软件测试网#jTkHQ+Q
    Host51Testing软件测试网A+e?;l{y(tP3y
    User-Agent
S2do/Pmt F"G w0    From
m)is\Vy9A0    If-Modified-Since51Testing软件测试网v`H9g| R/X.y
    If-Match
3l!zYBMyOXTN0    If-None-Match51Testing软件测试网Vp%n*A-D1qL0y
    If-Range51Testing软件测试网6a%~u/\H Y.i
    If-Unmodified-Since51Testing软件测试网\{W2e&jJ
    Max-Forwards51Testing软件测试网`!j!\-~Q-s.m"g&N
    Proxy-Authorization
!u9h-qnB+s@0    Range51Testing软件测试网-`g/PdBM(m-t Xt
    Referer
51Testing软件测试网1_$B#y A:g/k+v&h

3、响应报头 (Response Headers)51Testing软件测试网,P3] i-v_ n a

T;Jh!r2_jd0响应报头允许服务器传递不能放在状态行中的附加响应信息,
']3ug T6O'| j:t*Z:\+|0以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息
)[5v6W v$u'H~w0对响应头域的扩展要求通讯双方都支持,如果存在不支持的响应头域,一般将会作为实体头域处理51Testing软件测试网'Yo5Yn#X3d

Location
"{v:V#Na*z0    Server51Testing软件测试网6I\6?3M;_ i
    WWW-Authenticate51Testing软件测试网5a$o9P7X8B)ua*I(gY
    Age
^8j {n%O D)?%W0    Proxy-Authenticate
r0Y3_}Ei0    Public51Testing软件测试网;MW9{#Jmh*Bt
    Retry-After51Testing软件测试网?-J:a.X*KF3Yj'zBFX
    Vary
/lk0Y;D H-nz:H@/o%X0    Warning
51Testing软件测试网/FX)mvQ%@ |i:|

4、实体报头 (Entity Header)

!x t6p0z7RS{!E0

JE8V p:jJ0请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,
gCJ'dCL\'Q0但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。
2p0z\3i"z@2csrr0h0实体报头定义了关于实体正文(eg:有无实体正文)和请求所标识的资源的元信息51Testing软件测试网3l)I V+K _Wq3@Soq

Content-Encoding51Testing软件测试网V9[^bEAA z&[
    Content-Language51Testing软件测试网2N%A-S/Ox ^~
    Content-Length51Testing软件测试网,m"T%RFy`
    Content-Type51Testing软件测试网8V0E*u0m:fQ
    Last-Modified51Testing软件测试网:?&|$REjx ]
    Expires51Testing软件测试网jC'f0D@F'R
    Allow
-WQ9])X6Dv3x0    Content-Base
k8c6js/AF0    Content-Location
D N"{s y:fx{ [4]0    Content-MD5
+sdp!N(P0    Content-Range
.U6Xz6c/]0    Etag
Ubc6KhK]!CgB!i0    extension-header
51Testing软件测试网N7a+YHI*m0y7L

Accept
SBoH&x6V6vYd\0客户端可以处理的媒体类型,按优先级排序,在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。51Testing软件测试网/a}!RW}I#yG

Accept: image/jpeg,image/png,*/*

4L;C iG?7W8x0Accept-Language
N nMe"GbK!k/mvR0客户端接受的语言列表。

gg wFY0
Accept-Language: zh-cn,zh;q=0.5

^mm!bS0Accept-Ranges
,sy g#nq0一个响应头标,它允许服务器指明:将在给定的偏移和长度处,为资源组成部分的接受请求。
^,mMCg dSf#U0该头标的值被理解为请求范围的度量单位。

U$kj#[`0
Accept-Ranges: bytes51Testing软件测试网i+O-\W6~)T
    Accept-Ranges: none

Kx;}6PkS!?Z Z#g0Accept-Encoding
7?/o?0t ` J0客户端编码。51Testing软件测试网d'r3k$myA s)U%M"Gp

Accept-Encoding: gzip,deflate
51Testing软件测试网2i#fI}Co

Accept-Charset51Testing软件测试网y}XTHy"cH'j
客户端可以处理的字符集,按优先级排序,在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。

T R"Xt6^D$H#c/\0
Accept-Charset: iso-8859-1,*,utf-8

*n6n7rRpWb0Age51Testing软件测试网o+f$the
允许服务器规定自服务器生成该响应以来所经过的时间长度,以秒为单位。51Testing软件测试网u'gt;o `7a@'x!H9I
该头标主要用于缓存响应。

3_3T!eg.|g3r|9t.]0
Age: 30

}C5R&M Q9R @0Allow51Testing软件测试网4N8[4g'\Wy
一个响应头标,它定义一个由位于请求URI中的次源所支持的HTTP方法列表。

W.zo"Gat0
Allow: GET,PUT
51Testing软件测试网/p2V/N;i{`2K tc2D5@

Authorization
W\7} Pb0一个响应头标,用于定义访问一种资源所必需的授权(域和被编码的用户ID与口令)。51Testing软件测试网e#t'O6}1CQP'O

Authorization: Basic YXV0aG9yOnBoaWw=

f6Q$NK}&o g*}0Cache-Control
Bz,^'Ax T YS0缓存机制。
ZQxaQ(H[G/V3t$Lv0在请求消息或响应消息中设置 Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。
!@ J,D!_.b(@e0请求时的缓存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached,
+_'D9GF7C HJYLI0响应消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。51Testing软件测试网-C sQm1H[

Cache-Control: max-age=3600
51Testing软件测试网F[ Es%[3H$OeO

各个消息中的指令含义如下:51Testing软件测试网K2Rj]0Ic8U
Public
ufr)Q \I4u0指示响应可被任何缓存区缓存。
-Yt b ` m0Private51Testing软件测试网M3MO\ i
指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。51Testing软件测试网H:k@[md
这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。51Testing软件测试网"x6\_S8e"_
no-cache51Testing软件测试网_XJ(nB N5k
指示请求或响应消息不能缓存
]-C.G#zi;}U G0no-store51Testing软件测试网xP6q |c'@
用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。51Testing软件测试网TnLgf y7S8[L QD
max-age
-`m%hO @6H0z Hl0指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
7rf$qA$rVhCK)U0mLp0min-fresh
jP#x Za#A0指示客户机可以接收响应时间小于当前时间加上指定时间的响应。51Testing软件测试网0CH2~5z._:g
max-stale
V BP7XCb\_0指示客户机可以接收超出超时期间的响应消息。51Testing软件测试网$PC0DpHs
如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

4M0z!g n:~051Testing软件测试网BIh {S)S;V {.Z6PV

Content-Length
#|2F7L1dX0表示实际传送的字节数
/eyF#~5P qI0只有当浏览器使用持久HTTP连接时才需要这个数据

eWHDN\4Y0

(d%LK+c N0Content-Encoding
8yJH8b:KL)a0文档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。
X0s?q7F?0利用gzip压缩文档能够显著地减少HTML文档的下载时间

F \ rS#o%T0

Nr;O'Q.@,M0Connection51Testing软件测试网i-nog$Y$D
是否保存socket连接为开放。

yt1?5j$Vok-[0
Connection: close
1}V-i}i G n+v(E0    Connection: keep-alive

8YII.Xx0Cookie51Testing软件测试网$sOmn]'`x;W
网站cookie51Testing软件测试网 k iaqs6h$S

Cookie: PHPSESSID=d2f86046854e13ca02d9eef6c2dcb826

r D@-in*`,a ^S0Content-Type
;uI$M`"q0用于向接收方指示实体的介质类型

6B&R.F\[p(Ay0
Content-Type: text/html

*iV-W3itPS*b0Content-Base
tJ7Op7m(fM0一种定义基本URI的实体头标,为了在实体范围内解析相对URLs。51Testing软件测试网Q9Fv6u;O
如果没有定义Content-Base头标解析相对URLs,使用Content-Location URI(存在且绝对)或使用URI请求。51Testing软件测试网DBL5i1Q0c J

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

"p#TmX'~\w0Content-Location51Testing软件测试网m9NF9M)u*`%QE
指定包含于请求或响应中的资源定位(URI)。51Testing软件测试网%m%X%Q B,y5n D8j-`
对URL也作为被解析实体的相对URL的出发点。51Testing软件测试网l!}e t(h ] M _|

Content-Location: http://www.myweb.com/news
51Testing软件测试网^7m$Mi~9C R.\$O

Content-MD551Testing软件测试网:V.uzs wyN
实体的一种MD5摘要,用作校验和。51Testing软件测试网6kna@ XOMt.ggf#P
发送方和接受方都计算MD5摘要,接受方将其计算的值与此头标中传递的值进行比较。51Testing软件测试网'~0XcR2P7v_#D

|~0D$W)ZO0Content-Range
q!n2e+sF0随部分实体一同发送;标明被插入字节的低位与高位字节偏移,也标明此实体的总长度。51Testing软件测试网'@Wzcc.I'ZdF

Content-Range: 1001-2000/5000

c%s;Ac5`;i0Date51Testing软件测试网h&j6@d3Q*^7t
Date头域表示消息发送的时间,时间的描述格式由rfc822定义。
~wh dk!RU0Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区

?6p@9^a~%f!W0
Date: Fri, 05 Dec 2008 03:17:21 GMT
51Testing软件测试网9QW(whR`

Expires
F*s;KNk(@2F;j0指定实体的有效期, 过期时间51Testing软件测试网Xf2|(xOl`*x \

Expires: Mon,05 Dec 2008 12:00:00 GMT
51Testing软件测试网6Ka*K SUi;G4p yN

ETag
:Cb |{G5Si0P/NR0一种实体头标,它向被发送的资源分派一个唯一的标识符。
[DLe,MwQf0对于可以使用多种URL请求的资源,ETag可以用于确定实际被发送的资源是否为同一资源。

"V|0Xe,z"`;t0
ETag: '208f-419e-30f8dc99'
51Testing软件测试网!^omC\8m0Q7V

Form
4L"?+z Ep.n0一种请求头标,给定控制用户代理的人工用户的电子邮件地址。

7`8YRMbUoLV-lb0
From: webmaster@myweb.com

ug%e9o3P5c}0Host
pC2Qp,F(w?[0被请求资源的主机名。对于使用HTTP/1.1的请求而言,此域是强制性的。

eQ3s8{1@Z0
Host: www.myweb.com
51Testing软件测试网pv8c \:e9inl

If-Modified-Since
v*hvI Yr!s{0记录页面最后修改时间,客户端往服务器发送

o%Ps7Pcc4^0
If-Modified-Since: Wed, 03 Dec 2008 03:39:18 GMT

KW1E5P#}g.LhY0If-Unmodified-Since51Testing软件测试网 O {'| }8W
只有自指定的日期以来,被请求的实体还不曾被修改过,才会返回此实体。51Testing软件测试网 V {3`;uWeT M,M

If-Unmodified-Since: Mon,10PR 18:42:51 GMT
51Testing软件测试网s j'S'DR f1[,j0`+g

If-Match51Testing软件测试网QM(B$p3Uc+t.Rt!D
如果包含于一个请求,指定一个或者多个实体标记。只发送其ETag与列表中标记区配的资源。51Testing软件测试网K:~+AofW@8y

If-Match: '208f-419e-308dc99'
51Testing软件测试网W"pYR}/`1h/e%G,[

If-None-Match51Testing软件测试网 M%w @;Jln#L'S
资源的ETag不与列表中的任何一个条件匹配,操作才执行。

{)nK `)b~1S{0
If-None-Match: "502d78280-2cc2-45d1c30522580"
51Testing软件测试网$NPZk~4r5e

If-Range
*[xE[,v~6c0指定资源的一个实体标记,客户端已经拥有此资源的一个拷贝。必须与Range头标一同使用。51Testing软件测试网0Y b/W;m3_tA
如果此实体自上次被客户端检索以来,还不曾修改过,那么服务器只发送指定的范围,否则它将发送整个资源。51Testing软件测试网/|:d cK%UmfQ?

Range: byte=0-499
| l])E4^|!pF(N.t0    If-Range: '208f-419e-30f8dc99'
51Testing软件测试网"zg,X4s/lw{!Uw

Keep-Alive
1K8d ee m.L1b#js'd0持续连接,出现后继请求时,避免建立或者重新建立连接。51Testing软件测试网cmW0[5Sf$z.x'S

Keep-Alive: 300

0\1g1{ O1F+f0Last-Modified51Testing软件测试网4E_ou-s
指定被请求资源上次被修改的日期和时间。

o:NQS L;j0
Last-Modified: Mon,10PR 18:42:51 GMT

fwt#e3} y-Q0{0Location51Testing软件测试网? ^1Mgj _*Jo
对于一个已经移动的资源,用于重定向请求者至另一个位置。51Testing软件测试网9{5WZ$S`zi W9L
与状态编码302(暂时移动)或者301(永久性移动)配合使用。51Testing软件测试网Lm0N/e6qm|E

Location: http://www2.myweb.com/index.jsp
51Testing软件测试网.Er;~QtBG:\

Max-Forwards51Testing软件测试网K @q'miS6N-w
一个用于TRACE方法的请求头标,以指定代理或网关的最大数目,该请求通过网关才得以路由。51Testing软件测试网sIMb&O|
在通过请求传递之前,代理或网关应该减少此数目。

v6\$qd)aY?D0
Max-Forwards: 3

E$J8F!V&?7\0h:c\0Pragma51Testing软件测试网q8F&}%b3P-`O
用来包含实现特定的指令,最常用的是Pragma:no-cache。51Testing软件测试网;Y;JT.J0Kf1@
在HTTP/1.1协议中,它的含义和Cache-Control:no-cache相同51Testing软件测试网kr-d&ivL,~p5{7kn

%~|!`0C4i$F,G0Proxy-Authenticate
*}x3Zm@.uQ0类似于WWW-Authenticate,便是有意请求只来自请求链(代理)的下一个服务器的认证。

hUKl8N5q,H @ IH0
Proxy-Authenticate: Basic realm-admin

%vj}1A\0Proxy-Proxy-Authorization
aJ8tH+l|$T0类似于授权,但并非有意传递任何比在即时服务器链中更进一步的内容。

QvkIq3Ua5}0
Proxy-Proxy-Authorization: Basic YXV0aG9yOnBoaWw=
51Testing软件测试网6r.a@"}}%A

Public51Testing软件测试网$pM/`x!bb$Zq4B-K
列表显示服务器所支持的方法集。51Testing软件测试网2R,`W H!]

Public: OPTIONS,MGET,MHEAD,GET,HEAD
51Testing软件测试网BCW,~0nv-t/F

Range
y3CZ9b\7ed0指定一种度量单位和一个部分被请求资源的偏移范围。51Testing软件测试网5C0Y_ {3E6G0EK G5w

Range: bytes=206-5513
51Testing软件测试网(O JTtX I

Refener51Testing软件测试网 Hk*q2~/_E({ e
一种请求头标域,标明产生请求的初始资源。对于HTML表单,它包含此表单的Web页面的地址。51Testing软件测试网!TO gYz

Refener: http://www.myweb.com/news/search.html
51Testing软件测试网hgP!^3cx.|ygOw

Retry-After
Eu~7s#E#p0N5P3rD2l0一种响应头标域,由服务器与状态编码503(无法提供服务)配合发送,以标明再次请求之前应该等待多长时间。
)C+[ G;NA s0此时间即可以是一种日期,也可以是一种秒单位。

j vsv }2f!F Yj0
Retry-After: 18

RjQh%v No0Server51Testing软件测试网mHit7Hh
服务器名字

+CH1sq|.hK(q*u0
Server: Apache/2.2.9 (Win32) PHP/5.2.6

(h'KNkxO K0Transfer-Encoding
G#fkG/Ko0一种通用头标,标明对应被接受方反向的消息体实施变换的类型
)?+Jd c Sw0当不能预先确定报文体的长度时,不可能在头中包含Content-Length域来指明报文体长度,51Testing软件测试网$iw![ ?!X5u9\E
此时就需要通过Transfer-Encoding域来确定报文体长度。51Testing软件测试网tZ/k!_,Wkp
通常情况下,Transfer-Encoding域的值应当为chunked,表明采用chunked编码方式来进行报文体的传输。
@.i%@+}I&w4J0chunked编码是HTTP/1.1 RFC里定义的一种编码方式,因此所有的HTTP/1.1应用都应当支持此方式。51Testing软件测试网f-\yz8W2K7s(e2e
chunked编码的基本方法是将大块数据分解成多块小数据,每块都可以自指定长度51Testing软件测试网Z"i_lG$c&j,h

Transfer-Encoding: chunked

.Bz!{.u6W#OL#m3k0User-Agent51Testing软件测试网J.\T"a BX G
用户浏览器信息,定义用于产生请求的软件类型(典型的如Web浏览器)

{ u*O,\bT)g K5VA2o0
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4

5q-_%M(Q:e9gB`t0Upgrade
exz4p e+V:\0允许服务器指定一种新的协议或者新的协议版本,与响应编码101(切换协议)配合使用。

Q:d^)?.X+[O0
Upgrade: HTTP/2.0

[1M+V9e} H Gn0Vary
z&wj'{1l7Mw+`0用于表示使用服务器驱动的协商从可用的响应表示中选择响应实体51Testing软件测试网'{#Y`[s8v

Vary: Accept-Encoding

@ M LU[*gq_0Via51Testing软件测试网#f"q^p)r
一个包含所有中间主机和协议的通用头标,用于满足请求。

dN"jO/Da(J&WvdP@0
Via: 1.0 fred.com, 1.1 wilma.com
51Testing软件测试网DjoG D-rgjC {

Warning
c:E-AA3c9E0用于提供关于响应状态补充信息的响应头标。

e&E!W:w4l%xY0
Warning: 99 www.myweb.com Piano needs tuning

I/QOs7] Rx%S0www-Authenticate
-C7Jy;wuz!u tS0一个提示用户代理提供用户名和口令的响应头标,与状态编码401(未授权)配合使用。响应一个授权头标。51Testing软件测试网u1N1~VR/~|HW%P

www-Authenticate: Basic realm=zxm.mgmt

3?pEns3r+Zw#VBo0X-Cache51Testing软件测试网HTJ![t+W_
表示 http request 是由 proxy server 回的
H5| H&{Q P\0MISS 表示 proxy 無資料,代理動作51Testing软件测试网-bjW7k3V
HIT 表示 proxy 直接回應51Testing软件测试网T2]+Nd2`2Z l~


TAG: HTTP-Header tcp-ip

 

评分:0

我来说两句

Open Toolbar