HTTP协议中的HEAD请求

2025-02-13 11:21:37 809

欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。


HTTP 协议中,浏览器或应用在请求和接收资源时,都会携带一些请求头和响应头信息。这些信息有时对我们调试、排查问题很有帮助。比如,当你用浏览器访问某个网站时,通过抓包工具像 Charles 就能看到很多有用的 header 信息。

1. 请求头(Request Header)

每次浏览器或应用向服务器发起请求时,都会带上请求头(Request Header),常见的有:

· Host:请求的主机名,可以是域名或者 IP 地址。

· User-Agent:浏览器或客户端的详细信息,例如,Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36,告诉服务器客户端的设备和浏览器信息。

· Accept:浏览器或客户端能够接受的内容类型,比如:text/html,application/xhtml+xml,image/webp,image/apng,*/*;q=0.8。

· Cookie:上次访问该网站时,服务器设置的 Cookie,会携带一些会话信息。

例如,当你访问 example.com 时,抓取到的请求头可能像这样:

GET / HTTP/1.1Host: example.com

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

Accept-Encoding: gzip, deflateCookie: _f=iVBORw0KGgoAAAANSUhEUgAAADIAAAAUCAYAAADPym6a...

2. 响应头(Response Header)

当服务器返回资源时,响应头(Response Header)则会包含资源的相关信息。例如,常见的有:

· Content-Type:告诉你返回的资源是什么类型,比如 text/html; charset=utf-8。

· Content-Encoding:资源的压缩方式,比如 gzip。

· Set-Cookie:服务器设置的 Cookie,用于会话跟踪,像:sid=5GB7bZyG5heANrXnQEUpqs4vDgx; domain=example.com; path=/; expires=Sat, 12 Aug 2017 11:54:48 GMT; httpOnly。

· Cache-Control:缓存控制信息,像 no-store 表示不缓存。

例如,服务器返回的响应头可能长得像这样:

HTTP/1.1 200 OKServer: nginxDate: Sat, 12 Aug 2017 07:54:45 GMTContent-Type: text/html; charset=utf-8Transfer-Encoding: chunkedConnection: keep-aliveCache-Control: no-storeSet-Cookie: sid=5GB7bZyG5heANrXnQEUpqs4vDgx; domain=example.com; path=/; expires=Sat, 12 Aug 2017 11:54:48 GMT; httpOnly

3. 其他常见 Header

· Cache-Control & Expires:控制缓存,Cache-Control: max-age=10 表示该资源在10秒内可以从缓存中读取,不再去请求服务器。

· Last-Modified & If-Modified-Since:通过检查资源的最后修改时间来决定是否需要重新下载资源,减少带宽消耗。

例如,Cache-Control: no-cache 表示每次请求都需要重新验证,而 If-Modified-Since 则帮助判断是否可以使用本地缓存。


蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,蓝队云期待与你一起探索。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: