在开始使用 Node.js 创建 web 应用之前,需要了解最基础的 HTTP 协议知识
概念
Web 的诞生主要有三要素
- HTML
- URL
- HTTP
HTTP 协议全称 Hyper Text Transfer Protocol(超文本传输协议),是一个客户终端和服务器端的请求、响应标准,是应用层协议
客户端与服务器通信
报文
客户端发起请求、服务器返回信息过程中交换信息称为 HTTP 报文,HTTP 报文是由多行数据构成的字符串文本
请求报文
响应报文
常用首部
在请求和响应报文中有些很常用的首部字段
| 报文 | 含义 |
|---|---|
| Transfer-Encoding:chunked | 服务器传输大量数据时候分块发送 |
| Accept | 客户端可以处理的媒体类型 |
| Accept-Encoding | 客户端能理解的编码方式(gzip\br\deflate) |
| Cache-Control | 客户端缓存控制 |
| User-Agent | 客户端信息 |
| Content-Length | 返回内容字节数 |
| Content-Type | 返回内容的媒体类型(MIME) |
| Cookie | 写入客户端的 Cookie |
状态码
HTTP 会在响应报文中使用状态码返回请求的处理结果,状态码由 三位数字 + 原因短语组成 (请求成功对应状态码和短语 200 OK ),状态码一般是 100 ~ 599 之间的数字,其大致含义如下
| 类别 | 原因短语 | |
|---|---|---|
| 1xx | Informational(信息性状态码) | 请求正在处理 |
| 2xx | Success(成功状态码) | 请求处理完毕 |
| 3xx | Redirection(重定向状态码) | 需要附加操作以完成请求 |
| 4xx | Client Error(客户端错误状态码) | 服务器无法处理 |
| 5xx | Server Error(服务器错误状态码) | 服务器处理请求出现异常 |
最常见的有
200请求成功301永久重定向304请求资源未发生改变307临时重定向403无权限访问404请求资源未找到500服务器内部异常502请求超时503服务器暂时无法处理请求

