Http协议报文结构

概述

Http是基于客户端/服务端(C/S)的架构模型,通过一个可靠链接(TCP)来交换数据.

  • 无连接:服务端处理完客户的请求,并收到客户的应答后,即断开连接.
    早期html网页面都是静态的简单的,这样做能节省服务端的资源,尽可能多的为更多客户端提供服务.
    后来html页面变得非常复杂,可能嵌入很多图片等资源,如果每次访问一个图片都要重新建立tcp连接就太低效了,所以人们提出了Keep-Alive来解决低效问题,客户端和服务器之间的HTTP连接会被保持不会断开(超过Keep-Alive规定的时间,意外断电等情况除外).当客户端发送另外一个请求时,就使用这条已经建立的连接.

  • 无状态:是指服务器端不知道客户端是什么状态,每个请求都是独立的.现在http的请求也是无状态的.人们使用Cookie或者session来解决无状态问题.

请求报文结构

请求报文:从客户端向服务端发送器请求报文.结构如下:

Request.png

由四部分组成:

  • 请求行 -- > 请求方法+URL+协议版本
  • 请求头部 --> 头部字段名 : 值
  • 空行
  • 请求数据

请求方法

指请求报文的类型,实际上就是一些命令,表示对请求对象的操作.常用方法如下表:

方法 含义
OPTION 请求一些选项的信息
GET 请求读取由URL所标志的信息
HEAD 请求读取由URL所标志的信息的首部
POST 给服务器添加信息(例如,注释)
PUT 在指明的URL下存储一个文档
DELETE 删除指明的URL所标志的资源
TRACE 用来进行回环测试的请求报文
CONNECT 用于代理服务器

响应报文结构

响应报文:从服务端到客户端的应答.

Resply.png

由四部分组成:

  • 状态行 --> 协议版本 + 状态码 + 短语
  • 响应头部 --> 头部字段名:值
  • 空行
  • 响应数据

状态码

  • 1XX:提示信息---请求已经收到,继续处理.
  • 2XX:成功 --- 请求已经收到,理解,接受
  • 3XX:重定向 --- 要完成请求必须进行更进一步的处理
  • 4XX:客户端错误 --- 请求有语法错误或无法实现
  • 5XX:服务端错误 --- 服务器未能实现合法的请求
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容