| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> HTTP与HTTPS -> 正文阅读 |
|
[网络协议]HTTP与HTTPS |
目录 一.HTTP1.关于HTTP经常精被问到的问题
2.什么是HTTP???????http协议 即超文本传送协议,http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应 3.Http的历史????????早在 HTTP建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器
4.HTTP1.1特点;
缺点:
5.SPYD为了解决HTTP1.X存在的问题google研发了SPYD(现在已经不再使用) 新特性:
6.HTTP2HTTP推出HTTP2解决问题 优点: ????????多向请求与响应在HTTP 1.x中,如果客户端想发送多个并行的请求以及改进性能,那么必须使用多个TCP连接。这是HTTP 1.x交付模型的直接结果,该模型会保证每个连接每次只交付一个响应(多个响应必须排队)。更糟糕的是,这种模型也会导致队首阻塞,从而造成底层TCP连接的效率低下。HTTP 2.0中新的二进制分帧层突破了这些限制。客户端和服务器可以把HTTP消息分解为互不依赖的帧,然后乱序发送,最后再在另一端把它们重新组合起来。把HTTP消息分解为独立的帧,交错发送,然后在另一端重新组装是HTTP 2.0最重要的一项增强。事实上,这个机制在整个Web技术栈中引发了一系列连锁反应,从而带来巨大的性能提升。 HTTP2.0多路复用的好处: ????????HTTP性能优化的关键并不在于高带宽,而是低延迟。TCP连接会随着时间进行自我「调整」,起初会限制连接的最大速度,如果数据成功传输,会随着时间的推移提高传输的速度(还记得TCP拥塞机制吗)。这种调整则被称为TCP慢启动。由于这种原因,让原本就具有突发性和短时性的HTTP连接变的十分低效。HTTP/2通过让所有数据流共用同一个连接,可以更有效地使用TCP连接,让高带宽也能真正的服务于HTTP的性能提升。 请求优先级和分帧: ? ? ? ? 帧是HTTP2的最小单位,把HTTP消息分解为很多独立的帧之后,就可以通过优化这些帧的交错和传输顺序,进一步提升性能。为了做到这一点,每个流都可以带有一个31比特的优先值:0表示最高优先级;2的31次方-1表示最低优先级。有了这个优先值,客户端和服务器就可以在处理不同的流时采取不同的策略,以最优的方式发送流,消息和帧。具体来讲,服务器可以根据流的优先级,控制资源分配(CPU、内存、带宽),而在响应数据准备好之后,优先将最高优先级的帧发送给客户端。 服务推送: ????????这是HTTP 2.0新增的一个强大的新功能,就是服务器可以对一个客户端请求发送多个响应。换句话说,除了对最初请求的响应外,服务器还可以额外向客户端推送资源而无需客户端明确地请求。为什么需要这样一个机制呢?通常的Web应用都由几十个资源组成,客户端需要分析服务器提供的文档才能逐个找到它们。那为什么不让服务器提前就把这些资源推送给客户端,从而减少额外的时间延迟呢?服务器已经知道客户端下一步要请求什么资源了,这时候服务器推送即可派上用场。 header压缩: ????????在HTTP/1中,我们使用文本的形式传输header,在header携带cookie的情况下,可能每次都需要重复传输几百到几千的字节。为了减少这块的资源消耗并提升性能,HTTP/2对这些首部采取了压缩策略。HTTP/2在客户端和服务器端使用“首部表”来跟踪和存储之前发送的键一值对,对于相同的数据,不再通过每次请求和响应发送;首部表在 HTTP/2的连接存续期内始终存在,由客户端和服务器共同渐进地更新;每个新的首部键―值对要么被追加到当前表的末尾,要么替换表中之前的值。 存在的问题: ????????虽然HTTP/2解决了很多之前旧版本的问题,但是它还是存在一个巨大的问题主要是底层支撑的TCP协议造成的。前面提到 HTTP/2使用了多路复用,一般来说同一域名下只需要使用一个TCP连接。但当这个连接中出现了丢包的情况,那就会导致 HTTP2os的表现情况反倒不如HTTP/1了. ????????因为在出现丢包的情况下,整个TCP都要开始等待重传,也就导致了后面的所有数据都被阻塞了。但是对于HTTP/1.1来说,可以开启多个TCP连接,出现这种情况反到只会影响其中一个连接,剩余的TCP连接还可以正常传输数据。 二.HTTPS1.什么是HTTPS? ? ? ?? ????????是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性. 2.Certificate Authorities ????????Certificate Authorities -证书颁发机构(CA)是HTTPS能够实现安全通信的必要的基本组成部分。这些颁发的证书要加载到网站中,以便客户可以安全地进行通信。 3.SSL ????????SSL的全称是Secure Sockets Layer也就是安全套接字层,它最初是由 4.TLS ????????TLS全称是Transport Layer Security(传输安全层)。1999年作为SSL3.0的升级版现身,它原本打算成为SSL的继任者,这也是关于这两个术语的第一个真正重要的观点。自本世纪初以来,TLS一直是网络上实现HTTPS的标准。SSL停下了,TLS的时代开启了。版本1. 1于2006年问世,而版本1.2则在此后2年问世也就是2008。2018年TLS 1.3上线了。随着这些新版本的发布,我们可以看到安全性和速度等方面的进步。它们继续使安全通信变得更强大,更快和更高效。 TLS握手: ????????当客户端(例如浏览器)想要通过HTTPS连接到服务器时,它们会开始进行TLS握手。这是客户端和服务器需要相互协商并就如何安全通信达成一致的地方。此握手由客户端问候开始,并且在此请求中,客户端还会将例如它支持的最高级别的TLS和其他信息(比如受支持的密码套件)一起发送. |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 12:51:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |