javascript基础从小白到高手系列四百五十八:HTTP 头部

每个HTTP 请求和响应都会携带一些头部字段,这些字段可能对开发者有用。XHR 对象会通过一
些方法暴露与请求和响应相关的头部字段。
默认情况下,XHR 请求会发送以下头部字段。
 Accept:浏览器可以处理的内容类型。
 Accept-Charset:浏览器可以显示的字符集。
 Accept-Encoding:浏览器可以处理的压缩编码类型。
 Accept-Language:浏览器使用的语言。
 Connection:浏览器与服务器的连接类型。
 Cookie:页面中设置的Cookie。
 Host:发送请求的页面所在的域。
 Referer:发送请求的页面的URI。注意,这个字段在HTTP 规范中就拼错了,所以考虑到兼容
性也必须将错就错。(正确的拼写应该是Referrer。)
 User-Agent:浏览器的用户代理字符串。
虽然不同浏览器发送的确切头部字段可能各不相同,但这些通常都是会发送的。如果需要发送额外
的请求头部,可以使用setRequestHeader()方法。这个方法接收两个参数:头部字段的名称和值。
为保证请求头部被发送,必须在open()之后、send()之前调用setRequestHeader(),如下面的例
子所示:
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
alert(xhr.responseText);
} else {
alert("Request was unsuccessful: " + xhr.status);
}
}
};
xhr.open(“get”, “example.php”, true);
xhr.setRequestHeader(“MyHeader”, “MyValue”);
xhr.send(null);
服务器通过读取自定义头部可以确定适当的操作。自定义头部一定要区别于浏览器正常发送的头部,
否则可能影响服务器正常响应。有些浏览器允许重写默认头部,有些浏览器则不允许。
可以使用getResponseHeader()方法从XHR 对象获取响应头部,只要传入要获取头部的名称即
可。如果想取得所有响应头部,可以使用getAllResponseHeaders()方法,这个方法会返回包含所
有响应头部的字符串。下面是调用这两个方法的例子:
let myHeader = xhr.getResponseHeader(“MyHeader”);
let allHeaders xhr.getAllResponseHeaders();
服务器可以使用头部向浏览器传递额外的结构化数据。getAllResponseHeaders()方法通常返回
类似如下的字符串:
Date: Sun, 14 Nov 2004 18:04:03 GMT
Server: Apache/1.3.29 (Unix)
Vary: Accept
X-Powered-By: PHP/4.3.8
Connection: close
Content-Type: text/html; charset=iso-8859-1
通过解析以上头部字段的输出,就可以知道服务器发送的所有头部,而不需要单独去检查了。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值