HTTP头文件(持续更新)

时间:2024-06-01 10:22:32

HTTP头文件简介(持续更新)

HTTP头文件可以包含很多有用的信息,但作为初学者大多数是不清楚这些内容的含义和作用,故我在学习过程中记录下主要的头文件内容的含义和作用,以备后续考查。本文会不定期持续更新。。。。。。

请求头

下图为火狐浏览器的火狐主页https://home.firefoxchina.com的请求头。一个请求头中包含了很多的信息,但对于初学者而言,一脸懵逼,内心迷茫。那么开始记录了。。。。
HTTP头文件(持续更新)
写在最前面

;q= (qvalues weighting)
值代表优先顺序,用相对质量价值 表示,又称为权重。

在后面的个种头中经常出现

进入正题:

Accept

表示用户代理希望接受的资源类型,即MIME类型。

Accept: <MIME_type>/<MIME_subtype>

这里举几个例子:

.mp3的格式是audio/mpeg

.htm.htmltext/html

.jpg.jpegimage/jpeg

更多内容见链接:https://blog.****.net/qq_26139045/article/details/102508082

Accept-Encoding

将客户端能够理解的内容编码方式——通常是某种压缩算法——进行通知(给服务端)。通过内容协商的方式,服务端会选择一个客户端提议的方式,使用并在响应头 Content-Encoding 中通知客户端该选择

gzip:表示采用LZ77压缩算法,以及32位CRC校验的编码方式

compress:采用LZW压缩算法

deflate:采用zlib结构和deflate压缩算法

br:表示采用Brotil算法的编码方式

identity:用于指代自身(例如:未经过压缩和修改)。除非特别指明,这个标记始终可以被接受。

Accept-language

告知服务端客户端可以理解的自然语言,用来说明用户希望使用的语言和语言组,实现用户语言定制化。

有一些网站会通过读取语言内容来限制指定语言用户访问,例如,笔者在之前遇到过一个钓鱼网站,在笔者浏览器设置的语言为EN时,钓鱼网站禁止了我的访问,将语言设置回汉字就会发现网站又可以访问了。这是一种简单的过滤指定用户的根据。

Cache-Control

通用消息头字段,通过指定指令控制来实现缓存机制

Cache-Control: max-age=
Cache-Control: max-stale[=]
Cache-Control: min-fresh=
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: only-if-cached

Connection

用于决定当前的事务完成后,是否会关闭网络连接。如果该值是“keep-alive”,网络连接就是持久的,不会关闭,使得对同一个服务器的请求可以继续在该连接上完成。

如果是close,表明客户端或服务器想要关闭该网络连接

Cookie

其中含有先前由服务器通过 Set-Cookie 首部投放并存储到客户端的 HTTP cookies。这个首部可能会被完全移除,例如在浏览器的隐私设置里面设置为禁用cookie,服务器将不会在你的计算机里 存放cookie。

Host

指明了服务器的域名(对于虚拟主机来说),以及(可选的)服务器监听的TCP端口号。

语法:Host::

Upgrade-Insecure-Requests

用来向服务器端发送信号,表明自己支持升级机制,客户端优先选择加密及带有身份验证的响应。

User-agent

这个大家应该会比较熟悉,这个就是用户代理,也经常被写作UA。它用来告知服务端发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。

通过修改UA信息可以欺骗服务端你的系统和浏览器产品,通过UA来判断操作系统和浏览器内核以提供更好的浏览体验是一个简单应用。

Referer

请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用 Referer 请求头识别访问来源,可能会以此进行统计分析、日志记录以及缓存优化等。

故可以通过添加或修改referer头来实现欺骗服务端,伪造我们的来源页面。以此越过一些网页的这种跳转访问要求。

X-Forwarded-For

可以被用来获取最初发起请求的客户端的IP地址,网站通过它来检查最初IP,故我们利用它来使用伪造客户端IP地址, 这样就可以欺骗服务端了。

语法:X-forwarded-For: 127.0.0.1,70.41.3.18, 150.172.238.178

格式为IP地址,代理,最近代理

响应头

下图为火狐浏览器的火狐主页https://home.firefoxchina.com的响应头。与请求头相同内容不在解释了。

HTTP头文件(持续更新)

Content-encoding

它和accept-encoding是一对,告知客户端内容使用何种编码方式

详细可见请求头的Accept-encoding

Age

消息头里包含消息对象在缓存代理中存贮的时长,以秒为单位。

Content-Security-Policy

允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。这将帮助防止跨站脚本攻击XSS,对网站的资源进行限制。

Content-type

告知客户端响应资源的类型属于哪一种,也是MIME格式,具体可以参考请求头的Accept

Date

显示数据报文建立的日期和时间

Server

包含了处理请求的源头服务器所用到的软件相关信息

通过查看server内容我们可以知道服务端的相关信息

例如:使用nginx或apache,操作系统类型是Unix、Linux、windows等

Transfer-Encoding

消息首部指明了将 entity安全传递给用户所采用的编码形式。

Via /x-Via

是一个通用首部,是由代理服务器添加的,适用于正向和反向代理,在请求和响应首部中均可出现。这个消息首部可以用来追踪消息转发情况,防止循环请求,以及识别在请求或响应传递链中消息发送者对于协议的支持能力。

通过via我们可以知道使用的协议、协议版本、公共代理URL及端口号、内部代理名称或别名。

参考文献

[1]https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers