http报文格式简介

发布于:2023-01-16 ⋅ 阅读:(555) ⋅ 点赞:(0)

前端和后端的沟通其实和我们生活中人与人之间的沟通是一样的,也是一种通信,只不过是计算机之间的通信。人与人之间之所以能沟通是因为我们遵循了同一种规则(协议)——语言。通信的双方只有遵循一种共同的通信协议,才能互相理解对方消息中所表示的含义,比如我们知道如何用中文来表达自己,同时我们能理解对方所表达的意思。那么前端和后端的沟通也遵循了一种协议——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报文的格式简介啦,希望小伙伴们能够好好掌握!

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到