HTTP 中的请求头

1,490 阅读2分钟

请求头一般有以下分类,本篇文章仅大致介绍下常见的请求头,部分重要的请求头将在以后文章重点讲解。

控制相关

  • Host:一般一个 IP 地址对应 N 个应用,通过 Host 即可定位到对应的应用。
  • Cache-Control:发送请求时,如何控制客户端的缓存策略。
  • Expect:与 100 状态码相关。
  • Range:指定范围请求,与 206 状态码相关。

条件相关

条件请求相关头部,前两者与 304 状态码相关,If-Range 与 206 状态码相关。

  • If-Match
  • If-Modified-Since
  • If-Range

内容协商

内容协商,告知服务期端我需要什么样的资源,比如语言以及压缩编码,如果服务器无法返回对应的资源,则返回 406 状态码。

图片来自 MDN 内容协商

  • Accept:我(客户端)需要什么样的资源,比如 json 与 html
  • Accept-Encoding:我需要什么样的压缩编码,比如 gzip 与 br,如果不配置则可能不进行压缩
  • Accept-Language:我需要什么样的语言,比如 en-US 和 zh-CN

认证相关

  • Authorization:每次发送请求时,使用该头部携带 token 信息,维护客户端的认证状态

来源相关

通过来源相关,我们可以更好地统计用户信息,也可以以此为依据用来防止爬虫。

  • Referer:当前页面的上一个页面是哪里,或者说该页面是由哪个页面跳转而来的
  • User-Agent:用户代理是什么,或者说该页面是由哪个客户端(比如浏览器版本号之类)跳转而来的

作业

  1. 浏览常见网站,打开浏览器控制台网络面板,查看其请求头