http传输协议
+ 前后端交互的方式
+ 前端以什么样的形式发送数据给后端
+ 后端以什么样的形式返回数据给前端
传输协议的步骤
1. 一个请求必须经历四个步骤
1-1. 建立连接
1-2. 发送请求(前端给后端)
1-3. 返回响应(后端给前端)
1-4. 断开连接
2. 只能由前端发起
+ 不能由后端主动沟通前端
3. 一次只能说一个事情
+ 对于这一个事情你可以尽可能的描述详细
+ 但是一次连接只能沟通一个事情
4. 前后端交互只能交互字符串
+ 所有其他数据类型都不可以
+ 中文会转成 url 编码
1. 建立连接
+ 基于 TCP / IP 协议的三次握手
+ 浏览器和服务器做的
+ 目的: 为了保证通道的连接
1. 前端和后端说: "你在吗"
2. 后端和前端说: "我在"
-> 后端知道 前端正常发送
-> 后端知道 后端正常接收
3. 前端和后端说: "好的我知道了"
-> 前端知道 后端正常接收
-> 前端知道 前端正常发送
-> 前端知道 前端正常接收
-> 前端知道 后端正常发送
4. 后端和前端说: "你发送请求吧"
-> 后端知道 前端正常接收
-> 后端知道 后端正常发送
2. 发送请求
+ 前端发送请求给后端, 必须以 请求报文 的形式发送
+ 一个特殊格式的字符串文件(由浏览器进行组装)
+ 请求报文
=> 请求行
-> GET / POST: 请求方式(未完待续)
-> ./login.php: 请求地址
-> HTTP/1.1: 传输协议版本
=> 请求头
-> 对本次请求的描述信息
-> Host: 请求主机
-> Accept: 期望的数据类型
-> UserAgent: 请求终端
-> ...
-> Cookie: (未完待续)
=> 请求空行
-> 分隔请求体和请求头的
=> 请求体
-> 前端携带给后端的参数
-> 有的有, 有的没有
3. 接收响应
+ 每一个响应是由服务端接收到前端的请求以后, 给出的结果
+ 必须以响应报文的形式发送到前端
+ 响应报文
1. 状态行
=> 200: 响应状态码(未完待续)
=> ok: 对响应状态码的简单描述
=> HTTP/1.1 传输协议版本
2. 响应头
=> 对本次响应的描述信息
=> Date: 服务器时间(世界标准时间)
=> Server: 服务器信息
=> Content-type: 响应体的数据格式
=> ...
3. 响应体
=> 后端给前端的数据
4. 断开连接
+ 基于 TCP / IP 协议的四次挥手
+ 为了保证断开连接
1. 前端给后端发一个消息: "响应体收到, 我要准备断开连接了"
2. 后端给前端发一个消息: "好的, 我知道你收到响应体了"
3. 后端再次给前端发一个消息: "我已经准备断开连接了, 当我再次收到你的消息的时候, 我就断了, 不再回复了"
4. 前端收到后端的第一个消息
5. 前端收到后端的第二个消息: "好的, 我断开了, 别回了"
|