这篇很早之前就想发了,差点忘记...
很多比赛的签到题喜欢在HTTP请求头上做文章,有的时候确实会遇到一些奇奇怪怪的点
在这里整理一下我遇到的吧,再顺手写下常用的请求头,当作是一个轻松的经验分享了
Host
指定服务器的域名和端口号。
User-Agent
客户端的信息(如浏览器类型、操作系统)。
Accept
客户端可以接受的媒体类型。
Accept-Encoding
客户端可以接受的编码方式(如 gzip、deflate)。
Accept-Language
客户端可以接受的语言。
Authorization
用于提供认证信息
示例:Authorization: Bearer <token>
Cache-Control
指定缓存行为。
示例:Cache-Control: no-cache
Connection
指定连接行为(如是否保持连接)
示例:Connection: keep-alive
Content-Type
请求主体的媒体类型(用于 POST 或 PUT 请求)。
Content-Length
请求主体的长度(字节数)。
Cookie
客户端保存的 cookie 信息。
Origin
指示请求的发起方(通常用于跨域请求)
Upgrade-Insecure-Requests
表明客户端优先使用 HTTPS。
示例:Upgrade-Insecure-Requests: 1
If-Modified-Since
仅在指定日期之后资源被修改的情况下请求资源。
示例:If-Modified-Since: Wed, 21 Oct 2020 07:28:00 GMT
Referer(引用页):
Referer是一个HTTP请求头部字段,用来指示请求的来源地址。当用户从网页A点击链接到网页B时,浏览器会在请求网页B的HTTP请求中添加Referer头部,其值是网页A的URL。
这个字段可以帮助服务器了解用户是从哪个页面链接过来的,从而进行流量分析、防止盗链等。
需要注意的是,Referer的拼写是有意为之的,尽管看起来像是拼写错误,但它实际上是正确的。
X-Forwarded-For(XFF):
X-Forwarded-For是一个HTTP扩展头部字段,用来在HTTP请求经过代理或负载均衡器时标识原始请求的来源IP地址。
当用户请求到达代理服务器时,代理服务器会在请求头部添加X-Forwarded-For字段,并附上用户的IP地址,然后请求被转发到目标服务器。如果请求经过多个代理,每个代理都会在X-Forwarded-For字段中追加自己的IP地址,用逗号分隔。
这个字段对于识别真实的客户端IP地址非常有用,尤其是在使用代理或CDN(内容分发网络)的情况下,因为直接的Remote Address可能只显示最后一个代理服务器的IP,而不是客户端的真实IP。
Date
表示请求日期
From
From 请求头是 HTTP 请求中的一个可选字段,通常用来指示发送请求的用户的电子邮件地址。
然而,出于隐私和安全原因,现代浏览器和常见的 HTTP 客户端工具(如 curl、wget)通常不会设置这个头。服务器也不会依赖它,因为它可以很容易地被伪造。
格式如下:
From: user@example.com
Via
Via 请求头用于追踪一条 HTTP 请求或响应报文在网络上的中转信息,通常包括代理服务器、网关、或其他网络中间设备。它可以帮助识别请求或响应经过了哪些中间节点。
这个头既可以出现在请求报文中,也可以出现在响应报文中,目的是防止请求或响应在代理服务器之间循环,或者帮助调试复杂的网络请求链路。
格式:
Via: 1.1 example.com (Apache/2.4)
关键内容:
HTTP 版本号:表示中间设备支持的 HTTP 协议版本,例如 1.1。
主机名:表示中间设备的主机名或 IP 地址,例如 example.com
。
注释(可选):括号中的部分通常是描述该中间设备的一些额外信息,如服务器类型、版本等。
示例:
Via: 1.1 proxy1, 1.0 proxy2
这个例子表示请求或响应经过了两个代理服务器,分别使用了 HTTP 1.1 和 HTTP 1.0 协议。
主要用途:
中间节点跟踪:提供从客户端到服务器或从服务器到客户端的中间节点的信息。
循环防止:帮助避免代理服务器之间的请求循环。
调试和日志记录:用于网络问题的追踪和调试。
代理服务器和网关通常会自动添加 Via 头,以标识其参与了请求的处理。
未完待续~
之后遇见新的还会更新