在开始使用 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
服务器暂时无法处理请求