前端和后端的沟通其实和我们生活中人与人之间的沟通是一样的,也是一种通信,只不过是计算机之间的通信。人与人之间之所以能沟通是因为我们遵循了同一种规则(协议)——语言。通信的双方只有遵循一种共同的通信协议,才能互相理解对方消息中所表示的含义,比如我们知道如何用中文来表达自己,同时我们能理解对方所表达的意思。那么前端和后端的沟通也遵循了一种协议——http协议,爱创课堂给大家就来讲一讲http协议中的报文格式简介。

http 报文格式分为两种,请求报文和响应报文。在介绍两种报文格式之前,我们先来看一个真实的 http 请求报文。

上面的nodejs代码简单地启动了一个 http 服务并且监听8080端口,将客户端携带的数据原封不动的返回。我们试着来发送一个请求:

我们通过 curl 命令向本地的8080端口发送了一个 http 请求,并且携带了 “hello” 消息,-v 选项会输出详细的通信过程。

下面我将根据上面的示例来详细介绍请求报文和响应报文的格式。

http 请求报文

一个 http 请求报文由四个部分组成:

1. 请求行(Request-Line)

2. 请求头部(Request Header Fields)

3. 回车换行(CRLF)

4. 消息体(Message Body)

贴一个 RFC 的官方定义:

请求行(Request-Line)

我们来看一开始给的示例的请求行:

请求行分为了三个部分:① 请求方法(Method)② 请求 URI③ HTTP 协议版本
三者之间用空格分隔。

请求头部(Request Header Fields)

这部分由成对的请求头部组成,用来告知服务端请求的更多信息。

消息体(Message Body)

这部分携带了本次请求需要发往服务端的信息,有的 Method 有这部分,而有的 Method 不需要这部分。比如 get 方法就没有消息体,get 方法一般都是通过 query 来传递参数。而 post 方法一般就有消息体。

http 响应报文

一个 http 响应报文也由四个部分组成:

1. 状态行(Status-Line)

2. 响应头部(Response Header Fields)

3. 回车换行(CRLF)

4. 消息体(Message Body)

状态行(Status-Line)

上面是一个典型的 http 响应状态行,我们可以看到也是由三部分组成的:① http 协议版本② 状态码(Status Code)③ 状态码的文本描述(Reason-Phrase)

响应头部(Response Header Fields)

和请求头部类似,就是两者之间有一些不同的头部字段。

消息体(Message Body)

返回给客户端的具体消息。

以上就是http报文的格式简介啦,希望小伙伴们能够好好掌握!

http报文格式简介相关推荐

  1. 【计算机网络】网络层 : BGP 协议 ( BGP 协议简介 | BGP 协议信息交换 | BGP 协议报文格式 | BGP-4 常用报文 | RIP 、OSPF、BGP 协议对比 )

    文章目录 一.路由选择协议分类 二.BGP 协议 简介 三.BGP 协议 信息交换过程 三.BGP 协议 报文格式 四.BGP 协议 特点 五.BGP-4 协议的 四种报文 六.RIP .OSPF.B ...

  2. TCP/UDP报文格式及各种通信机制简介

    TCP/UDP报文格式及各种通信机制简介 一.UDP报文 二.TCP报文 三.TCP通信机制 1,确认应答机制 2,超时重传机制 3,滑动窗口及快重传机制 4,流量控制 5,拥塞控制及慢启动机制 6, ...

  3. RLC协议简单理解1-RLC报文格式

    RLC协议简介 RLC(Radio Link Control)在无线协议架构中属于数据面协议中的一部分,数据传输从基站到终端的过程中,一共要经历UDP/SCTP-->SDAP/RRC--> ...

  4. 报文格式【定长报文】

    定长报文简介 定长报文,是目前使用最广泛的报文,同时比较简单的报文格式.理解起来也较为简单,但定长报文也有自身的局限性.其中最大的问题在于,如果定义域的长度需要加长,这时候相关的配置与程序代码都需要进 ...

  5. 网络-IP协议详解(报文格式、分类、NAT、子网、CIDR、抓包分析)

    目录 简介 报文格式 IPv4地址 分类 网络地址转换NAT 子网划分与子网掩码 CIDR 实战 参考 简介 IP(网际互连协议,Internet Protocol)是TCP/IP协议族中最为核心的协 ...

  6. ARP协议的报文格式

    结构ether_header定义了以太网帧首部:结构arphdr定义了其后的5个字段,其信息 用于在任何类型的介质上传送ARP请求和回答:ether_arp结构除了包含arphdr结构外, 还包含源主 ...

  7. tcp报文格式_面试必备TCP(一):三次握手

    TCP大家都知道是什么东西,这个协议的具体报文格式如下: 标志位 URG:指示报文中有紧急数据,应尽快传送(相当于高优先级的数据). PSH:为1表示是带有push标志的数据,指示接收方在接收到该报文 ...

  8. 四、HTTP响应报文格式

    一.响应报文格式 HTTP的响应报文的通用格式如下 主要包括状态行.首部行.空行和实体体,和请求报文的结构类似 示例 状态行 HTTP/1.1 200 OK\r\n 常见的状态码的类别如下 常用状态码 ...

  9. MQTT——控制报文格式

    了解控制报文格式是学习MQTT中,笔者认为最为重要的一个知识点.MQTT的所有行为都离不开他.控制报文可以分为三个部分组成,分别为:固定报头.可以变报头.有效载荷部分. 注意:上面的说的报文的类型.是 ...

最新文章

  1. 教你设计一个超牛逼的本地缓存!
  2. insightface mxnet训练horovod版
  3. 机房收费系统之抽象工厂篇
  4. linux删除某个path_linux 从path中去掉某个
  5. magicAjax问题
  6. 学用状态机模式,写的报销流程,请指教
  7. CKEditor的使用,并实现图片上传
  8. 解决微信0day上线CobaltStike的几个问题
  9. 内存占用小的手机输入法_华为手机输入法中6个超实用的小技巧,你没用过就太可惜了!...
  10. 使用pythonping检查设备的连通性并记录可达设备(eNSP模拟器)
  11. Windows 安装 Git,sh.exe 调用 Windows 上的 .sh 格式文件
  12. 阶段3 2.Spring_07.银行转账案例_5 编写业务层和持久层事务控制代码并配置spring的ioc...
  13. SSM+Jedis初体验
  14. c语言打印uint64, int64
  15. PHP获取<textarea>换行空白格处理
  16. 度分秒转度数和度数转度分秒
  17. 【实验】实验五 MATLAB高等数学运算20211125
  18. 农夫山泉做起“烧水工,熟水市场的魅力究竟有多大?
  19. GRE单词积累(1)
  20. java中怎么改变白天模式,android 白天黑夜模式切换例子源码

热门文章

  1. 运动模糊运动拖影果冻效应分析
  2. R语言:calendarHeat日历图(PM2.5)
  3. 用浏览器下载一个文件,当点击该文件(原理)
  4. 对数组进行“整体赋值”
  5. 斐波那契数列(C/C++)
  6. ibatis配置文件中 parameterClass,resultClass,resultMap 表示的意思
  7. Linux手动安装和部署github
  8. Android Google原生系统刷机
  9. c语言程序考试试题,C语言程序设计期末考试试题(含答案)
  10. xgboost原理(无推导就轻易理解)