IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> JS-part16.4- http传输协议 -> 正文阅读

[网络协议]JS-part16.4- http传输协议

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. 前端收到后端的第二个消息: "好的, 我断开了, 别回了"
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 08:19:50  更:2021-09-19 08:20:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/21 6:53:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码