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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 浏览器中的网络 -> 正文阅读

[网络协议]浏览器中的网络

HTTP/0.9

  1. 只有请求行,因为一个请求行足够表达要获取的内容
  2. 只有响应体,因为只要返回数据即可,不需要告诉客户端编码、语言等信息
  3. 返回的文件内容是以 ASCII 字符流来传输的,因为是获取 HTML 文件

HTTP/1.0

  1. 加上了请求行,告诉服务器返回什么类型的文件、采取什么形式的压缩、提供什么语言的文件以及文件的具体编码
accept: text/html
accept-encoding: gzip, deflate, br
accept-Charset: ISO-8859-1,utf-8
accept-language: zh-CN,zh
  1. 加上了响应头,比如 content-encoding 字段告诉浏览器最终的压缩类型
    content-encoding: br
    content-type: text/html; charset=UTF-8

  2. 加上状态码

  3. Cache 机制,用来缓存已经下载过的数据

  4. 用户代理:用于服务器需要统计客户端的基础信息

HTTP/1.1

  1. 改成持久连接
    目前浏览器中对于同一个域名,默认允许同时建立 6 个 TCP 持久连接。
Connection: keep-alive
  1. 提供虚拟主机的支持: Host 字段
  2. 客户端 Cookie、安全机制
  3. 使用 CDN 的实现域名分片机制。

缺点:
HTTP/1.1对带宽的利用率却并不理想

  1. TCP 慢启动
  2. 同时开启了多条 TCP 连接,那么这些连接会竞争固定的带宽。又无法区分是关键资源还是普通资源,导致一律放慢速度
  3. HTTP/1.1 队头阻塞的问题。
    在一个 TCP 连接里,多个 HTTP 请求,前面的 HTTP 请求没结束之前,后面的 只能等待着

HTTP/2

一个域名只使用一个 TCP 长连接和消除队头阻塞问题。

TLS

一个域名只使用一个 TCP 长连接来传输数据,
实现资源的并行请求,服务器也可以随时返回处理好的请求资源给浏览器

  1. 多路复发: 带有 ID 编号的帧
    协议栈中添加二进制分帧层(加上 ID 编号),就实现了 HTTP 的多路复用技术。
    帧:HTTP/2 数据通信的最?单位消息:指 HTTP/2 中逻辑上的 HTTP 消息。例如请求和响应等,消息由?个或多个帧组成。
    流:存在于连接中的?个虚拟通道。流可以承载双向消息,每个流都有?个唯?的整数ID
  2. 可以设置请求的优先级
  3. 服务器推送,不需要浏览器发起请求,服务器主动将一些重要资源推送到浏览器
  4. 头部压缩

缺点:

  1. TCP 的队头阻塞:
    在 TCP 传输过程中,由于单个数据包的丢失而造成的阻塞称为 TCP 上的队头阻塞。
    管道中的任意一个数据丢失了,那之后的数据都需要等待该数据的重新传输
    在 HTTP/2 中,多个请求是跑在一个 TCP 管道中的,如果其中任意一路数据流中出现了丢包的情况,那么就会阻塞该 TCP 连接中的所有请求。
  2. TCP 建立连接的延时
    把从浏览器发送一个数据包到服务器,再从服务器返回数据包到浏览器的整个往返时间称为 RTT
    在这里插入图片描述

HTTP/3:

基于 UDP 实现了类似于 TCP 的多路数据流、传输可靠性等功能,我们把这套功能称为 QUIC 协议

QUIC 协议

  • 实现了类似 TCP 的流量控制、传输可靠性的功能。
  • 集成了 TLS 加密功能
  • 实现了 HTTP/2 中的多路复用功能

和 TCP 不同,QUIC 实现了在同一物理连接上可以有多个独立的逻辑数据流(如下图)。实现了数据流的单独传输,就解决了 TCP 中队头阻塞的问题。
在这里插入图片描述

实现了快速握手功能。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 12:18:31  更:2021-09-01 12:18:46 
 
开发: 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年11日历 -2024/11/25 22:49:07-

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