XmlHttpRequest学习笔记 (5) HTTP报头

HTTP报头(HTTP Header)是HTTP通信时的一些元数据(Metadata),用来让服务器和客户端达成一些共识,比如客户端的版本、通信内容的格式等。

在使用XmlHttpRequest时,也可以设置或读取HTTP报头,这时可以使用

setRequestHeader方法 和 getResponseHeader方法

先来看setRequestHeader(header, value)方法,它可以用来设置所发出的数据包的报头,比如

设置了Accept-Charset报头为UTF-8,也就是表明客户端支持UTF-8格式的内容,服务器为根据这个设置,来预处理响应的数据包。详细的HTTP报头的定义,可以参考RFC2616的第14节

和setRequestHeader相反,getResponseHeader(header)可用于查询服务器返回的数据包的报头:

假设value的值是"gzip",则说明服务器返回的内容,是使用gzip格式压缩的。

以下是一个样例:

输出为:

iPhone Content length = 30317
IE Content length = 63729

这就说明http://leonax.net/在响应不用的客户端时,返回的数据不一样。

顺便提一下,还有一个方法是getAllResponseHeaders(),可用于获取服务器返回的数据包中所有的报头。

顺便再提一下,一些影响安全性的报头,如Referrer和Content-Length,是不能使用setRequestHeader来设置的。


发表评论

电子邮件地址不会被公开。 必填项已用*标注