HTTP 协议基础入门教程
前后端数据的交换一般是基于 HTTP 协议。
HTTP 协议包括客户端和服务端两个实体,客户端发送请求给服务端,服务端返回响应给客户端。
在 HTTP 中,数据称为资源,可以是 html 文档、图片、也可以是普通文本。资源是通过 URL 进行定位的。
URL#
当客户端需要访问服务端资源时,首先需要知道资源的 url,例如打开 bilibili 网站:
或者请求某篇博文下的所有评论。
URL 的组成部分有:
- http:// - 协议 Protocal
 - jsonplaceholder.typicode.com - 主机 Host
 - /comments - 路径 path
 - ?postId=1 - 查询参数
 
服务端收到 url 会解析它们并返回相应的数据。
发送 HTTP 请求#
HTTP 请求包括下边几个部分
- 请求方式, 告知服务器要进行的操作,GET是默认请求方式,意思是从服务端获取资源,另外还有几个其他常用的方式:
- POST - 创建资源
 - PUT - 更新资源
 - DELETE - 删除资源
 - 区别是 GET 和 DELETE 一般没有请求体。而POST 和 PUT 通常带有请求体,用于向服务端发送资源信息。
 
 
接下来是:
- 请求资源的路径和查询参数
 - HTTP 版本
 - 请求头,包含额外的信息来帮助服务器决定如何进行响应,比如使用 accept 设置接收响应资源的类型
 - 请求体,是需要发送给服务器的数据
 
接收响应#
服务端在处理请求之后发送响应给客户端。内容有:
- HTTP 协议版本
 - 响应状态码,表明响应的结果
- 100-199 一般信息
 - 200-299 成功响应
 - 300-399 重定向
 - 400-499 客户端错误
 - 500-599 服务端错误
 
 
接下来是:
- 状态码含义的简要描述
 - 响应头,与请求头类似,包含额外的响应信息,比如告知客户端如何控制缓存和 cookie。
 - 响应体(如果有)- 是服务端返回的数据
 
无状态#
HTTP 协议是无状态的,每次客户端发出的请求都被认为是从全新的客户端发出来的,如果需要记录状态则需要使用 cookie 和 session 来保持会话,实现登录和购物车之类的功能。
HTTP/2#
现在 HTTP/2已经可以正式开始使用了,它跟 HTTP 1.1不同的是:
- 数据通过二进制形式传输,不再是文本形式
 - 多路复用 - 建立连接后一次可以发送多个 HTTP 请求
 - 压缩 http headers,减少负载
 - 支持 server push
 
好了,这就是今天的前后端交互之 HTTP 协议,看完这些你应该了解前端应用发送请求和接收响应时,各项参数的含义了。如果有帮助别忘了三连加关注,我是峰华,感谢观看!