# 超文本传输协议 HTTP

## HTTP 的报文结构

<figure><img src="https://2360649912-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3c4d4G2SmdXooqcxZXXU%2Fuploads%2F2foCqjDOwbcee5i5FIO5%2Fimage.png?alt=media&#x26;token=fd4dc28b-d033-485d-a8c2-78c7b628a71f" alt=""><figcaption></figcaption></figure>

**HTTP 请求报文和响应报文都是由三个部分组成的：**

1. **开始行，用于区分是请求报文还是响应报文**。
   * 在请求报文中的开始行叫做请求行 （Request-Line），而在响应报文中的开始行叫做状态行（Status-Line）。
     * **“请求行”包含三项内容：方法，请求资源的 URL ，以及 HTTP 的版本**
     * **“状态行”包含三项内容：HTTP 的版本，状态码，以及解释状态码的简单短语。**
   * 在开始行的三个字段之间都以空格分隔开，最后的“CR”和“LF”分别代表“回车”和“换行”。
2. **首部行**，用来说明浏览器、服务器或报文主体的一些信息。
   * **在每一个首部行中都有首部字段名和它的值**，每一行在结束的地方都要有“回车”和“换行”。
   * **整个首部行结束时，还有一空行将首部行和后面的实体主体分开。**
3. **实体主体（entity body）**
