HTTP头部信息解析

HTTP头部信息解析

图片源自网络

HTTP的几种请求方法:

POST:

POST 会将数据发送到服务器来更新资源,通过POST方法向服务器传输的内容存放在包体内。

GET:

请求指定的页面信息,并返回实体主体,GET请求的查询字符串是在URL中进行传输的。

GET和POST的区别

HEAD:

HEAD 与 GET 几乎相同,但没有响应主体。

DELETE:

DELETE 方法删除指定的资源。

PUT:

PUT 用于将数据发送到服务器来创建/更新资源。多次调用相同的 PUT 请求将始终产生相同的结果。而重复调用POST请求会多次创建相同资源。

OPTIONS:

OPTIONS 方法描述目标资源的通信选项。

CONNECT:

HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。

TRACE:

回显服务器收到的请求,主要用于测试或诊断。

PATCH:

是对 PUT 方法的补充,用来对已知资源进行局部更新 。


危险的HTTP方法:

PUT:由于PUT方法自身不带验证机制,利用PUT方法可以向服务器上传文件,所以恶意攻击者可以上传木马等恶意文件。

DELETE:利用DELETE方法可以删除服务器上特定的资源文件,造成恶意攻击。

OPTIONS:将会造成服务器信息暴露,如中间件版本、支持的HTTP方法等。

TRACE:可以回显服务器收到的请求,主要用于测试或诊断,一般都会存在反射型跨站漏洞


HTTP消息报头包括请求报头、响应报头、实体报头、通用报头。

请求方的HTTP报头结构:通用报头|请求报头|实体报头

响应方的HTTP报头结构:通用报头|响应报头|实体报头


请求报头:

Host:

请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。HOST决定着我们可以去访问哪个虚拟主机。HOST的字段的作用在于指明HTTP报文的方向,访问的地点。

User-Agent:

向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。

Accept:

代表发送端(客户端)希望接受的数据类型。 比如:Accept:text/xml; 代表客户端希望接受的数据类型是xml类型。

Accept-Encoding:

浏览器发给服务器,声明浏览器支持的编码类型。

Accept-Language:

表示浏览器所支持的语言类型。

Connection:

允许客户端和服务器指定与请求/响应连接有关的选项,例如这是为Keep-Alive则表示保持连接。

Transfer-Encoding:

传输编码,告知接收端为了保证报文的可靠传输,对报文采用了什么编码方式。


响应报头

用于服务器传递自身信息的响应。

Content-Type:

互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。

Location:

该属性表示该网页的跳转网址,也被称为重定向网址。当网页中包含该属性后,浏览器会自动从当前网页跳转到location中指定的网址。对应的显示过滤器为http.location。

Server:

服务器和相对应的版本,告诉客户端服务器信息,与User-Agent请求报头是相对应的。

X-Cache:

x-cache是squid代理的自定义header,用来记录缓存的命中与否。

X-Cache-Lookup:

指专门查看代理服务器中是否有某个网页缓存:有就返回HIT,没有返回MISS。


实体报头

实体报头既可用于请求也可用于响应中。

Content-Length:

HTTP消息长度, 用十进制数字表示的八位字节的数目。首部指示出报文中实体主体的字节大小. 这个大小是包含了所有内容编码的, 比如, 对文本文件进行了gzip压缩的话, Content-Length首部指的就是压缩后的大小而不是原始大小。

Content-Language:

首部字段 Content-Language 会告知客户端,实体主体使用的自然语言(指中文或英文等语言)。

Content-Encoding:

首部字段 Content-Encoding 会告知客户端服务器对实体的主体部分选用的内容编码方式。内容编码是指在不丢失实体信息的前提下所进行的压缩。

尽管实体报头既非请求或响应报头,(由于它经常出现在请求头或响应头中)它们通常包含于此类概念中。

通用报头

通用头域包含请求和响应消息都支持的头域。

Cache-Control:

用于指定所有缓存机制在整个请求/响应链中必须服从的指令。缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制)。
这个头比较复杂,我引用百度百科中的内容

Connection:

http 请求的是否保持长连接,即链接是否复用,每次请求是复用已建立好的请求,还是重新建立一个新的请求。允许发送指定连接的选项,例如指定连接是连续的,或者指定“close”选项,通知服务器,在响应完成后,关闭连接。

Pragma:

表示缓存来源,值为no-cache时,表示禁用缓存。

Transfer-Encoding:

传输编码。详细看这篇博客

Via:

通用头域。列出从客户端到 OCS 或者相反方向的响应经过了哪些代理服务器,他们用什么协议(和版本)发送的请求。

Date:

表示消息产生的日期和时间

附录:
HTTP头部详解
在这里插入图片描述

有什么问题请大家指出,暂时请不要转载,首发为我的个人博客,之后还会更新,谢谢

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zHx981

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值