在日常上网过程中,浏览器和服务器之间的通信离不开HTTP协议。当你打开一个网页时,浏览器会向服务器发送一个HTTP请求,而这个请求里包含了很多信息,其中一部分就是“请求头”(Request Headers)。这些请求头告诉服务器你是谁、你想干什么、能接收什么类型的数据等。
常见的HTTP请求头有哪些
比如 User-Agent 告诉服务器你用的是什么设备和浏览器,Accept 表示你能处理的内容类型,Content-Type 说明你发过去的数据是什么格式。还有像 Authorization 用来携带登录凭证,Referer 记录你从哪个页面跳转过来。
举个例子,你在手机上用微信内置浏览器打开某个网站,服务器看到的 User-Agent 就会和电脑Chrome不一样,它就知道你是用移动端访问的,可能会返回更适合小屏幕的页面。
如何手动设置请求头
如果你在写前端代码或者调试接口,经常需要自定义请求头。比如用JavaScript的 fetch 方法发请求时,可以这样加请求头:
fetch('https://api.example.com/data', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your-token-here',
'User-Agent': 'MyApp/1.0'
}
})
.then(response => response.json())
.then(data => console.log(data));
这里设置了三个请求头:指定内容类型为JSON,带上身份令牌,还伪装了一个应用标识。服务器收到后就会根据这些信息做判断,比如验证你的身份是否合法。
如果是用Python的 requests 库,写法也类似:
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Authorization': 'Bearer your-token',
'Accept': 'application/json'
}
response = requests.get('https://api.example.com/user', headers=headers)
print(response.json())
有些网站会对请求头做检查,比如没有带正确的 User-Agent 就拒绝响应,这时候加上一个常见的浏览器标识就能绕过限制。
浏览器开发者工具里也能看到请求头
按F12打开开发者工具,切换到“网络”(Network)标签,刷新页面,点开任意一条请求,就能在“Headers”部分看到完整的请求头信息。这对排查问题特别有用,比如发现某个接口总是失败,一看才发现是 Authorization 没传,或者 Content-Type 写错了。
有时候测试API,可以用Postman这类工具,直接填写请求头字段,不用写代码也能调试。填好键值对,点发送,马上能看到结果,方便又直观。