http协议报文体_HTTP报文基本概念学习

HTTP是什么

HTTP是HyperText Transfer Protocol的缩写,中文就是超文本传输协议,所谓的超,是个学术用语,是基于某种事物增加了更多的信息维度,比如超像素xxx之类的.

协议是什么,协议说白了就是约定,约定就是模板,就是表格,就和你去银行办手续一样,客户不知道要提供什么信息,银行又不能一个客户一个客户教,所以就准备一样表格.

HTTP的脑洞(无事实根据)

为什么会有HTTP叫做报文呢,因为我觉得以前最早大家都是通过电报机来远程快速传递信息.由于每个字都老贵了,所以能简短就简短.就有了报文这个东西,一般包含以下信息

发件人

收件人

干什么

所以说到了现在都超文本这么吊的东西了,说白了还是和电报一样,滴滴滴,你发给服务器一个电报,服务器看看,然后滴滴滴,回给你一个电报.这就是所谓的超文本传输协议.

但是吊就吊在这个超字上,现在电脑便宜了,大街上一百块一台,所以说可以发更多的信息了,所谓更多的信息,就是除了文本本身的内容外,还可以携带一些网络参数以及约定的信息等,是指的信息维度的增加(除去内容还有其它维度),而不是文本内容变长了.

所以说HTTP通信,本质上和以前的电报还是没有什么区别的,唉,人类真是聪明又愚蠢啊.

HTTP报文格式

就像刚刚说的,一张白纸,怎么写才能让两边指导什么写的是什么呢?就牵扯到格式了,这种格式约定就是协议.HTTP其实就是一张这样的表单

HTTP报文头

就如同刚刚脑洞中以电报举例一样,HTTP的报头主要是一些参数信息,类似于

发件人

收件人

并不包含实际文本内容

HTTP报文头首行有3个数据,来分辨这个是Request报文还是Response报文,接下来每行是一个字段和一个内容,这些字段都是W3C规定好的,你当然可以自定义,但是只不过通用标准不认罢了.所以说字段相当于表格中

姓名: some SB

里的姓名,”some SB”这个内容可能会变,但是不管怎么发报文,姓名这一栏不会变.

HTTP报文体

HTTP报文体是开始于HTTP报文头遇到一个仅有换行的空行开始,这也是为什么会有CRLF换行符注入这种攻击,因为报文都是通过换行符来判断哪里是内容开始,报文头结束.可以通过换行符的注入,当报文头提前结束,进入报文体.

HTTP的Request和Response

就像刚刚说的一样,虽然HTTP都是基于报文,但是你发给服务器的电报和服务器返回给你的电报是不同的,他们的主要区别在于两点

报文头的字段

报文体是否可以省略

在Request中报文体并不是必须的,有些Request方法中可以省略,而Response中是不可以省略的,如果报文体因为各种情况没有了,那么就是空返回.

HTTP报文头的字段

通用字段Connection

Content-Encoding

Content-Length

Content-Type

Transfer-Encoding

请求Request字段Accept

Accept-Encoding

Authorization

Cookie

Host

If-Modified-Since

If-None-Match

Origin

Referer

User-Agent

响应Response字段Access-Control-Allow-Origin

Cache-Control

ETag

Expires

Location

Pragma

Server

Set-Cookie

WWW-Authenticate

X-Frame-Options

HTTP的Request方法

HTTP一共有六种Request方法,其中最重要的是GET和POST方法,除了这两个外还有剩下四种,但是不太常用.

HEAD

TRACE

OPTIONS

PUT

虽然不太常用,并不是不用注意

比如有根据TRACE的机制进行攻击的方法.TRACE方法主要用于诊断,服务器会返回Request里所有的报文头诶报文内容信息,所以在某下情况下,如果本地无法获取到Request的报文头,可以通过伪造链接,使用TRACE方法从返回报文里都出来Request中的信息.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值