本文共 2171 字,大约阅读时间需要 7 分钟。
HTTP请求中的请求头(Request Headers)包含客户端向服务器发送的各种信息,用于指导服务器如何处理请求。常见的请求头包括:
告知服务器客户端可以处理的内容类型,使用MIME类型表示。例如:
Accept: */*
表示客户端可以处理任意类型的MIME类型。
通知服务器客户端能够理解的内容编码方式,通常用于内容协商。例如:
Accept-Encoding: gzip, deflate
服务器会选择客户端支持的编码方式进行响应。
告知服务器客户端可以理解的自然语言及优先区域方言。例如:
Accept-Language: en-US, en
用于内容协商,服务器可根据语言选择合适的资源。
决定当前TCP连接是否持久。值keep-alive
表示连接保持不变,适用于长时间传输。例如:
Connection: keep-alive
指定请求服务器的域名或IP地址和端口号。默认端口为HTTP的80和HTTPS的443。例如:
Host: developer.mozilla.org
记录当前请求页面的来源页面地址,用于追踪访问路径。例如:
Referer: https://www.example.com/page.html
服务器可利用Referer信息进行日志统计、缓存优化等。
指定传输编码类型及优先级,用于客户端与服务器协商传输方式。例如:
TE: gzip, deflate
包含客户端的软件信息,用于服务器识别客户端类型。例如:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4452.72 Safari/537.36
HTTP响应中的响应头(Response Headers)包含服务器向客户端发送的信息,通常用于控制缓存、内容协商和协议处理。常见的响应头包括:
控制缓存机制,指定缓存策略。常见值包括:
public
: 响应可被缓存。private
: 响应只供单一客户端缓存。no-cache
: 响应不可缓存。no-store
: 响应内容不可缓存。指定响应的有效期限,表示在该日期/时间之后响应将过期。例如:
Expires: Wed, 10 Jul 2024 00:00:00 GMT
包含处理请求的服务器软件信息。例如:
Server: Apache/2.4.1 (Unix)
强制使用HTTPS协议,防止混合内容攻击。例如:
Strict-Transport-Security: max-age=63072000
决定了哪些请求头信息会影响响应内容协商。例如:
Vary: User-Agent
用于防止客户端缓存旧版本的资源。
追踪消息传输路径,可用于反向代理统计。例如:
Via: http/1.1 ProxyPlusCleanToPlus
指示客户端是否遵循MIME类型指定。例如:
X-Content-Type-Options: nosniff
防止点击劫持攻击,控制页面嵌入。例如:
X-Frame-Options: DENY
保护页面内容不被嵌入或加载。例如:
X-ContentSecurityPolicy: frame-allow none
指定哪些域名的资源可以共享。例如:
Access-Control-Allow-Origin: *
表示允许所有域名访问资源。
允许客户端传递凭证信息。例如:
Access-Control-Allow-Credentials: true
列出可以暴露给客户端的响应头。例如:
Access-Control-Expose-Headers: Cache-Control, Content-Length
防止跨站请求伪造攻击。例如:
X-CSRF-Token: abc123
Referer 不会在以下情况下发送:
file
或data
URI。Location.href
或Location.replace()
。noreferrer
属性。Referer 的作用:
HTTP请求和响应头是网络通信的基础,理解它们对于开发和优化网络应用至关重要。
转载地址:http://blxm.baihongyu.com/