HTTP 的报文结构

HTTP 有两类报文:

请求报文——从客户向服务器发送请求报文。(发送哪些请求,如GET获取网页内容。账户名,密码提交给服务器,需要POST

响应报文——从服务器到客户的回答。(服务器收到请求给客户端一个状态,请求成功或者失败,有没有权限访问

由于 HTTP 是面向正文的 (text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。(明文的,不加密)

HTTP 的报文结构(请求报文)


http报文有两种,一种是请求报文(从请求端发出的),另外一种叫响应报文(从服务器发出的),而里面的信息就是HTTP协议交互的信息。

报文标准结构与报文压缩

报文分为两个部分,一部分为为请求头,另外一部分叫做请求体,需要说明一点,请求体是可以忽略的。

比如请求方法header方法,它就不会去获取请求体而对于请求头来说,它是由多行数据构成的字符串文本,数据都是通过换行符隔开。

而这就是一个一个的请求头信息。请求方法,状态码。

在请求头当中,有两个参数是有特定名字的,第一行是请求行,另外一个有单独名字的叫做状态码。

也就是在请求头当中,第一行叫做请求行(里面包含了请求方法,请求的uri,以及http的版本号。)

另外一个就是状态码,比如说200 ok。

它们有单独的名字就说明这些必须包含在请求头当中。

除了这两个参数以外,其他的都叫首部字段,并且首部字段是可以扩展的,你甚至可以自定义。

如果首部再去划分,可以划分为,通用的首部,请求首部,响应的首部,以及实体首部。

由于请求头也是http传输协议报文当中的一部分,它的数据量越大,也会间接影响http协议的传输速率。

传输速率:将要传输的数据信息分为实体,实体需要借助http协议传输。而在http协议当中,有个基本的数据单位叫做报文,它是http协议当中的基本单位,由8位组的字节流。

实体信息想要通过http协议传输,首先就要将实体拆分为诺干的报文,也就是实体=报文,而这种传输方式我们也可以称为按照数据原样输出,而为了提升传输的速率我们可以通过压缩技术来减小数据的体量,并且客户端也可以通过解压来获取数据的原样。

而一般情况下会对外部的文本文件进行压缩,这会有解压缩的性能消耗。

下面可以看到使用了gizp的压缩格式。这个字段来阐明这个字段是否被压缩。一般只压缩文本文件,不压缩二进制文件,因为压缩不明显。 

 HTTP 请求报文的一些方法


HTTP 的报文结构(响应报文)


状态码都是三位数字


  • 1xx 表示通知信息的,如请求收到了或正在进行处理。
  • 2xx 表示成功,如接受或知道了。
  • 3xx 表示重定向,表示要完成请求还必须采取进一步的行动。
  • 4xx 表示客户的差错,如请求中有错误的语法或不能完成。
  • 5xx 表示服务器的差错,如服务器失效无法完成请求。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值