http1.0、http1.x、http 2和https梳理
http1.0、http1.x、http 2和https梳理
Http1.x
线程阻塞,在同一时间,同一域名的请求有一定数量限制,超过限制数目的请求会被阻塞
http1.0
- 缺陷:浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接(TCP连接的新建成本很高,因为需要客户端和服务器三次握手),服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求;
- 解决方案
- 添加头信息——非标准的Connection字段Connection: keep-alive
http1.1
- 持久连接
- 引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive(对于同一个域名,大多数浏览器允许同时建立6个持久连接)
- 管道机制
- 即在同一个TCP连接里面,客户端可以同时发送多个请求。
- 分块传输编码
- 即服务端没产生一块数据,就发送一块,采用”流模式”而取代”缓存模式”。
- 新增请求方式
- PUT:请求服务器存储一个资源;
- DELETE:请求服务器删除标识的资源;
- OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求;
- TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断;
- CONNECT:保留将来使用
- 缺点:
- 虽然允许复用TCP连接,但是同一个TCP连接里面,所有的数据通信是按次序进行的。服务器只有处理完一个请求,才会接着处理下一个请求。如果前面的处理特别慢,后面就会有许多请求排队等着。这将导致“队头堵塞”
- 避免方式:一是减少请求数,二是同时多开持久连接
HTTP/2.0
优点
采用二进制格式而非文本格式;
完全多路复用,而非有序并阻塞的、只需一个连接即可实现并行;
使用报头压缩,降低开销
服务器推送- 二进制协议
- HTTP/1.1 版的头信息肯定是文本(ASCII编码),数据体可以是文本,也可以是二进制。HTTP/2 则是一个彻底的二进制协议,头信息和数据体都是二进制,并且统称为”帧”:头信息帧和数据帧。
- 二进制协议解析起来更高效、“线上”更紧凑,更重要的是错误更少。
- 完全多路复用
- HTTP/2 复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应,这样就避免了”队头堵塞”。
- 报头压缩
- HTTP 协议是没有状态,导致每次请求都必须附上所有信息。所以,请求的很多头字段都是重复的,比如Cookie,一样的内容每次请求都必须附带,这会浪费很多带宽,也影响速度。
对于相同的头部,不必再通过请求发送,只需发送一次; - HTTP/2 对这一点做了优化,引入了头信息压缩机制;
- 一方面,头信息使用gzip或compress压缩后再发送;
- 另一方面,客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,产生一个索引号,之后就不发送同样字段了,只需发送索引号。
- HTTP 协议是没有状态,导致每次请求都必须附上所有信息。所以,请求的很多头字段都是重复的,比如Cookie,一样的内容每次请求都必须附带,这会浪费很多带宽,也影响速度。
- 服务器推送
- HTTP/2 允许服务器未经请求,主动向客户端发送资源;
- 通过推送那些服务器任务客户端将会需要的内容到客户端的缓存中,避免往返的延迟
HTTPS
- HTTP协议通常承载于TCP协议之上,在HTTP和TCP之间添加一个安全协议层(SSL或TSL),这个时候,就成了我们常说的HTTPS.
- HTTPS主要作用
- (1)对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;
- (2)对网站服务器进行真实身份认证。
- HTTPS和HTTP的区别
- HTTPS是加密传输协议,HTTP是名文传输协议;
- HTTPS需要用到SSL证书,而HTTP不用;
- HTTPS比HTTP更加安全,对搜索引擎更友好,利于SEO,
- HTTPS标准端口443,HTTP标准端口80;
- HTTPS基于传输层,HTTP基于应用层;
- HTTPS和HTTP的工作过程区别
- HTTP 包含动作:
- 浏览器打开一个 TCP 连接
- 浏览器发送 HTTP 请求到服务器端
- 服务器发送 HTTP 回应信息到浏览器
- TCP 连接关闭
- SSL 包含动作:
- 验证服务器端
- 客户端和服务器端选择加密算法和密码,确保双方都支持
- 验证客户端(可选)
- 使用公钥加密技术来生成共享加密数据
- 创建一个加密的 SSL 连接
- 基于该 SSL 连接传递 HTTP 请求
- HTTP 包含动作:
- HTTPS加密方式
- 对称加密:
- 加密和解密都是使用的同一个密钥;
- 非对称加密:
- 加密使用的密钥和解密使用的密钥是不相同的,分别称为:公钥、私钥;
- 公钥和算法都是公开的,私钥是保密的。
- 非对称加密过程:
- 服务端生成配对的公钥和私钥
- 私钥保存在服务端,公钥发送给客户端
- 客户端使用公钥加密明文传输给服务端
- 服务端使用私钥解密密文得到明文
- 数字签名:
- 签名就是在信息的后面再加上一段内容,可以证明信息没有被修改过。
- 验证传输的内容是对方发送的数据
- 对称加密:
http1.0、http1.x、http 2和https梳理的更多相关文章
- Web 协议 HTTP1.0 HTTP1.1 SPDY HTTP2.0
Web 协议 HTTP1.0 HTTP1.1 SPDY HTTP2.0 HTTP1.0 VS HTTP1.1 长连接HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而H ...
- 浅谈Http1.0/Http1.1/Http2.0/Https
HTTP 1.0 → HTTP 1.1 长连接 HTTP 1.1默认支持长连接,减少了TCP连接次数,节约开销. HTTP 1.0所保持的TCP每次只能处理一个请求,最典型的就是pipline管线化模 ...
- HTTP1.0,HTTP1.1,HTTP2.0的主要特征对比
HTTP1.0 是一种无状态.无连接的应用层协议. HTTP1.0规定浏览器和服务器保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器处理完成后立即断开TCP连接(无连接),服务 ...
- HTTP1.0/1.1/2.0特性对比_转
转自:HTTP1.0 HTTP1.1 HTTP2.0 主要特性对比 https://segmentfault.com/a/1190000013028798 HTTP1.0 早先1.0的HTTP版本, ...
- HTTP与HTTPS异同/HTTP1.0与HTTP1.1差别
HTTP状态码 分类 解释 描述 1XX 信息 服务器收到请求,需要请求者继续执行操作 2XX 成功 操作被成功接收并处理 3XX 重定向 需要进一步的操作以完成请求 4XX 客户端错误 请求包含语法 ...
- HTTP、HTTP1.0、HTTP1.1、HTTP2.0、HTTPS
一.HTTP HTTP(超文本传输协议,HyperText Transfer Protocol)是应用层的协议,目前在互联网中应用广泛. 它被设计用于Web浏览器和Web服务器之间的通信,但它也可 ...
- C# HTTP1.0 1.1 2.0与HTTPS 、TCP/IP协议的UDP与TCP、 Socket介绍与WebSocket
一.HTTP1.0 1.1 2.0和HTTPS 1.HTTP协议是什么? HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol.它是从WEB服务器传输超文 ...
- HTTP1.0,1.1,2.0,HTTPS
HTTP1.0/1.1/2.0/HTTPS HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为了提供一种发布和接收HTML页 ...
- http1.0 和 http1.1 区别
http1.0 和 http1.1 主要区别 1.背景 KeepAlive是就是通常所称的长连接.KeepAlive带来的好处是可以减少tcp连接的开销,这对于短response body的请求效 ...
随机推荐
- Ubuntu安装微信,解决deepin“版本过低”或NO_PUBKEY问题
在搜索引擎搜索Ubuntu安装微信,最多的结果是通过deepin安装 但是里面使用的deepin-for-ubuntu 安装之后微信扫码会提示版本过低 直接安装deepin.com.wechat_2. ...
- Objection基本原理
1,Objection 的简介 就是一个依赖注入框架,github地址:https://github.com/atomicobject/objection 2,Objection 原理 3,Objec ...
- 【Composer】PHP开发者必须了解!
Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Composer是必须的. 对于使用者来说Composer非常的简单,通过简单的一条命令将需要的 ...
- mysql中information_schema.schemata字段说明
1. 获取所有数据库信息(SCHEMATA) show databases; 查看用户下所有数据库信息:SCHEMATA表:提供了关于数据库中的库的信息.详细表述了某个库的名称,默认编码,排序规则.各 ...
- 跟我一起学QT_QT标准对话框_字体选择框
标准对话框 QT的标准对话框分为以下几种 颜色对话框 文件对话框 字体对话框 输入对话框 消息对话框 进度对话框 错误信息对话框 向导对话框 字体选择框 字体选择框位于 QFontDialog 类中 ...
- $loj\ 2031\ [SDOI2016]$数字配对 网络流
正解:网络流 解题报告: 我永远喜欢$loj$! 显然先预处理哪些$a$之间可以连边,然后考虑建两排点,连流量为$c_{i}\cdot c_{j}$,然后$ST$连$inf$,跑个费用流? 然后现在碰 ...
- 洛谷$P$2468 粟粟的书架 $[SDOI2010]$ 主席树
正解:主席树 解题报告: 传送门! 题目大意是说,给定一个矩形,然后每次会给一个,这个大矩形中的一个小矩形,询问从小矩形中最少选多少个数字能满足它们之和大于等于给定数字$x$ 看起来很神的样子,完全不 ...
- 「UVA1328」Period 解题报告
English题面 题意: 给你一个长度为n的字符串,依次取字符串前i个(前缀),如果前缀由k(k>0)个相同真子串构成,那么输出i和k 直到n为0结束,每组数据后要有一行空白 思路: KMP+ ...
- Windows安装EMQ服务器(mqtt)
先去EMQ官网下载安装包 https://www.emqx.io/downloads#broker 注意:此处一定不能下错成企业版的,不然EMQ会由于缺少企业license无法启动服务 解压到任意路径 ...
- ENS 域名注册表智能合约(ENSRegistry.sol)解析
ENS 注册表合约是 ENS 系统中的核心合约,了解这个合约可以敲开我们理解 ENS 域名系统的大门. 打开下面的折叠区域可以查看用 Solidity 语言编写的详细代码.当前部署在以太坊中的 ENS ...