20 头域
头域的语法描述在7.3节。本节列出了头域的全部列表,包括了语法注释,含义,和用法。通过本节,我们使用[HX.Y]指当前HTTP/1.1 的RFC2616[8]的规范的X.Y节。每个头域都有示例给出。
accidentally关于与方法和proxy处理有关的头域字段在表2和表3中有处理。
“where”列描述了在头域中能够使用的请求和应答的类型。这列的值是:
R:头域只能在请求中出现;
r:头域只能在应答中出现;
韩语论坛
2xx,4xx,等等:一个数字的值区间表示头域能够使用的应答代码。
fell的过去式
c:头域是从请求拷贝到应答的。
如果”where”栏目是空白,表示头域可以在所有的请求和应答中出现。
“proxy”列描述了proxy在头域上的操作
a:如果头域不存在,proxy可以增加或者连接头域
m:proxy可以修改现存的头域值
d:proxy可以删除头域值
r:proxy必须能读取这个头域,因此这个头域不能加密。
接下来6个栏目与在某一个方法中出现的头域有关:
c:条件;对头域的要求依赖于消息的内容
m:头域是强制要有的。
m*:头域应当被发送,但是客户端/服务端都需要准备接收没有这个头域的消息。
o:头域是可选的。
t:头域应当被发送,但是客户端/服务端都需要准备接收没有这个头域的消息。
客户端/服务端都需要准备接收没有这个头域的消息。如果通讯的协议是基于面向
流的协议(比如TCP),那么头域值必须被发送。
ler
*:如果消息体不为空,那么头域值就绪要的。(细节请参见20.14,20.15和7.4
节)
-:这个头域是不适用的。
“Optional”意味着这个元素可以在请求或者应答中包含这个头域,并且UA可以忽略在请求或者应答中存在的这个头域(这条规则有一个例外,就是Require头域,在20.32节有描述)。”mandatory”(强制)头域是必须在请求中存在的头域,并且也必须是UAS 接收到一个请求时能够理解的头域。一个强制头域必须也在应答中出现,并且UAC也能处理这个头域。”Not applicable”(不适用)意味着头域不能在请求中出现。如果一个UAC错误的把这个头域放在请求中,在UAS收到的时候必须被忽略。同样的,如果应答中的”不适用”的头域,也就是说UAS不能在应答中放置的头域,如果出现了,那么UAC也必须在应答中忽略掉这个头域。
一个UA必须忽略他们所不能处理的扩展的头参数。
本规范也定义了常用的头域名的缩写,用于缩小消息的大小。
在Contact,From,To头域中都包含一个URI。如果这个URI包含一个逗号,问号或者分毫,那么这个URI必须使用尖括号括起来(<;和>)。所有的URI参数都必须在这些括号内。如果URI并非用尖括号
pilot是什么意思括起来的,那么用分号分开的参数将被视同与header 参数而不是URI参数。
20.1 Accept
Accept头域的语法定义遵从[H14.1]。除了如果没有Accept头域,服务器应当认为Accept缺省值是application/sdp以外,语义也是和HTTP/1.1类似的语义。
空的Accept头域意味着不接受任何格式。
Header field where proxy ACK BYE CAN INV OPT REG Accept R - o - o m* o Accept 2xx - - - o m* o Accept 415 - c - c c c Accept-Encoding R - o - o o o Accept-Encoding 2xx - - - o m* o Accept-Encoding 415 - c - c c c Accept-Language R - o - o o o Accept-Language 2xx - - - o m* o Accept-Language 415 - c - c c c Alert-Info R ar - - - o - - Alter-Info 180 ar - - - o - - Allow R - o - o o o Allow 2xx - o - m* m* o Allow r - o - o o o Allow 405 - m - m m m Authentication-Info 2xx - o - o o o Authorization R o o o o o o Call-ID c r m m m m m m Call-Info ar - - - o o o Contact R o - - m o o Contact 1xx - - - o - - Contact 2xx - - - m o o Contact 3xx d - o - o o o Contact 485 - o - o o o Content-Disposition o o - o o o Content-Encoding o o - o o o Content-Language o o - o o o Content-Length ar t t t t t t Content-Type * * - * * * Cq c r m m m m m m Date a o o o o o o Error-Info 300-699 a - o o o o o Expires - - - o - o From c r m m m m m m
In-Reply-To R - - - o - - Max-Forwards R amr m m m m m m Min-Expires 423 - - - - - m MIME-Version o o - o o o Organization ar - - - o o o
iorgane>cellox表2:头域概览,A-O
Header field where proxy ACK BYE CAN INV OPT REG Priority R ar - - - o - - Proxy-Authenticate 407 ar - m - m m m Proxy-Authenticate 401 ar - o o o o o Proxy-Authorization R dr o o - o o o Proxy-Require R ar - o - o o o Record-Route R ar o o o o o o Record-Route 2xx,18x mr - o o o o - Reply-To - - - o - - Require ar - c - c c c Retry-After 404,
high是什么意思- o o o o o
413,
480,
486
- o o o o o Retry-After 500,503fifo
600,603
Route R adr c c c c c c Server r - o o o o o Subject R - - - o - - Supported R - o o m* o o Supported 2xx - o o m* m* o Timestamp o o o o o o To c(1) r m m m m m m Unsupported 420 - m - m m m Ur-Agent o o o o o o Via R amr m m m m m m Via rc dr m m m m m m Warning r - o o o o o WWW-Authenticate 401 ar - m - m m m WWW-Authenticate 407 ar - o - o o o 表3:头域概览,P-Z (1)和可能的附加tag一起拷贝。
例子:
Accept: application/sdp;level=1,application/x-private,text/html
20.2 Accept-Encoding
Accept-Encoding头域类似Accept,但是限定了接收应答中的内容的编码[H3.5]。参见[H14.3]。在SIP中的语义和在[H14.3]中的定义是一致的。
一个空的Accept-Encoding头域是允许的。他等同于Accept-Encoding:identity,这就是
说,只有identity编码,也就是说没有编码的情况,是允许的。
如果没有Accept-Encoding头域存在,那么服务端应当使用缺省值:identity。
这个和HTTP的定义略有不同,HTTP指出如果本头域不存在,那么任何编码形式都可以使用,只是推荐identity编码而已。
例如:
Accept-Encoding:gzip
20.3 Accept-Language
Accept-Language头域用来在请求中指定首选的的语言的,这个首选的语言是在应答中的消息体中的的原因分析,会话描述,或者状态报告的。如果没有Accept-Language 存在,那么服务端应当假设所有的语言客户端都可以接受。
Accept-Language头域遵从[H14.4]节定义的语法。对于SIP来说,也同样支持对语言通过”q”参数来进行排序。
例如:
Accept-Language: da, en-gb; q= 0.8, en;q=0.7
20.4 Alert-Info
当INVITE请求有一个Alert-Info头域的时候,Alert-Info头域就包含的是给UAS的一个额外的信息。当在180(Ringing)应答中出现的时候,Alter-Info头域给出了UAC一个额外的回铃信息。这个头域的一个典型用法就是让proxy增加这个头域用来体哦你嘎一个与众不同的振铃效果。
Alter-Info头域可能会带来潜在的安全隐患。这个隐患以及相应的处理在20.9节有讲述,这个隐患和Call-Info头域的隐患是相同的。
staff另外,用户应当可以有选择的屏蔽这个特定。
这个可以保护用户不因为使用了未受信任节点发送过来的这个头域而导致的破
坏。
例如:
Alter-Info: &/sounds/moo.wav>