HTTPS、HTTP/2.0、HTTP/1.1

HTTP协议,http1.0,1.1,2.0区别,http和https的区别、cookie和session 一、HTTP定义 HTTP是Hyper Text Transfer Protocol 超文本传输协议 的缩写。用于从WWW服务器传输超文本到本地浏览器的传送协议,是一个无状态的协议。 通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。 默认HTTP的端口号为80,HTTPS的端口号为443。 一般情况: HTTP协议永远都是客户端发起请求,服务器回送响应,客户端将内容拿到之后就和服务器断开来连接。这就决定了,如果客户端没有发起请求,服务器是没法推送数据 阅读详情

目录

一、HTTPS

加密

认证

完整性保护

HTTPS的缺点

二、HTTP/2.0

HTTP/1.0缺陷

二进制分帧层

服务器推送

首部压缩

三、HTTP/1.1新特性


一、HTTPS

HTTP 有以下安全性问题:

  • 使用明文进行通信,内容可能会被窃听;
  • 不验证通信方的身份,通信方的身份有可能遭遇伪装;
  • 无法证明报文的完整性,报文有可能遭篡改。

HTTPS 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信,也就是说 HTTPS 使用了隧道进行通信。

通过使用 SSL,HTTPS 具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。

加密

1.对称秘钥加密        

对称密钥加密(Symmetric-Key Encryption),加密和解密使用同一密钥。

  • 优点:运算速度快;
  • 缺点:无法安全地将密钥传输给通信方。

2.非对称秘钥加密

非对称密钥加密,又称公开密钥加密(Public-Key Encryption),加密和解密使用不同的密钥。

公开密钥所有人都可以获得,通信发送方获得接收方的公开密钥之后,就可以使用公开密钥进行加密,接收方收到通信内容后使用私有密钥解密。

非对称密钥除了用来加密,还可以用来进行签名。因为私有密钥无法被其他人获取,因此通信发送方使用其私有密钥进行签名,通信接收方使用发送方的公开密钥对签名进行解密,就能判断这个签名是否正确。

  • 优点:可以更安全地将公开密钥传输给通信发送方;
  • 缺点:运算速度慢。

3.HTTPS采用的加密方式

HTTPS 采用混合的加密机制,正是利用了上面提到的方案:

  • 使用非对称密钥加密方式,传输对称密钥加密方式所需要的 Secret Key,从而保证安全性;
  • 获取到 Secret Key 后,再使用对称密钥加密方式进行通信,从而保证效率。(下图中的 Session Key 就是 Secret Key)

认证

通过使用 证书 来对通信方进行认证。

数字证书认证机构(CA,Certificate Authority)是客户端与服务器双方都可信赖的第三方机构。

服务器的运营人员向 CA 提出公开密钥的申请,CA 在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公开密钥证书后绑定在一起。

进行 HTTPS 通信时,服务器会把证书发送给客户端。客户端取得其中的公开密钥之后,先使用数字签名进行验证,如果验证通过,就可以开始通信了。

完整性保护

SSL 提供报文摘要功能来进行完整性保护。

HTTP 也提供了 MD5 报文摘要功能,但不是安全的。例如报文内容被篡改之后,同时重新计算 MD5 的值,通信接收方是无法意识到发生了篡改。

HTTPS 的报文摘要功能之所以安全,是因为它结合了加密和认证这两个操作。试想一下,加密之后的报文,遭到篡改之后,也很难重新计算报文摘要,因为无法轻易获取明文。

HTTPS的缺点

  • 因为需要进行加密解密等过程,因此速度会更慢;
  • 需要支付证书授权的高额费用

二、HTTP/2.0

HTTP/1.0缺陷

HTTP/1.x 实现简单是以牺牲性能为代价的:

  • 客户端需要使用多个连接才能实现并发和缩短延迟;
  • 不会压缩请求和响应首部,从而导致不必要的网络流量;
  • 不支持有效的资源优先级,致使底层 TCP 连接的利用率低下。

二进制分帧层

HTTP/2.0 将报文分成 HEADERS 帧和 DATA 帧,它们都是二进制格式的。

在通信过程中,只会有一个 TCP 连接存在,它承载了任意数量的双向数据流(Stream)。

  • 一个数据流(Stream)都有一个唯一标识符和可选的优先级信息,用于承载双向信息。
  • 消息(Message)是与逻辑请求或响应对应的完整的一系列帧。
  • 帧(Frame)是最小的通信单位,来自不同数据流的帧可以交错发送,然后再根据每个帧头的数据流标识符重新组装。

服务器推送

HTTP/2.0 在客户端请求一个资源时,会把相关的资源一起发送给客户端,客户端就不需要再次发起请求了。例如客户端请求 page.html 页面,服务端就把 script.js 和 style.css 等与之相关的资源一起发给客户端。

首部压缩

HTTP/1.1 的首部带有大量信息,而且每次都要重复发送。

HTTP/2.0 要求客户端和服务器同时维护和更新一个包含之前见过的首部字段表,从而避免了重复传输。

不仅如此,HTTP/2.0 也使用 Huffman 编码对首部字段进行压缩。

 

三、HTTP/1.1新特性

  • 默认是长连接
  • 支持流水线
  • 支持同时打开多个 TCP 连接
  • 支持虚拟主机
  • 新增状态码 100
  • 支持分块传输编码
  • 新增缓存处理指令 max-age

 

 

 

 

 

 

简述http1.0/1.1/2.0及https http1.0/1.1性能问题 1、早期 HTTP/1.0 性能上的一个很大的问题,那就是每发起一个请求,都要新建一次 TCP 连接(三次握手),而且是串行请求,做了无谓的 TCP 连接建立和断开,增加了通信开销。 2、为了解决上述 TCP 连接问题,HTTP/1.1 提出了长连接的通信方式,也叫持久连接。这种方式的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。 3、http1.1的管道网络传输,即可在同一个 TCP 连接里面,客户端可以发起多个请求,只要第一个请求 阅读详情

相关推荐

HTTP1.0/1.1/2.0/HTTPS

HTTP1.0(1996) 用户名和密码 未加密 短连接,效率低 不支持断点续传,一次发送全部数据 不支持虚拟网络 缓存失效判断较少,只使用了header的if=modified-Since和Expires作为缓存失效的标准 HTTP1.1(1999) 身份验证(摘要算法) 场链接 支持断点续传 支持虚拟网络 HTTP2.0(2015) 头部压缩(HPACK算法) 解析效率高(二进制格式,而不是ASCII码) 强化安全(一般都跑在HTTPS上) 多路复用(一个连接可以多请求) HTTPS和HTT

清崎教练 503

HTTPS、HTTP1.1与HTTP2的区别、概念和联系(使用golang实现HTTP2服务器)

HTTPS是HTTP的加密传输版本,HTTP2是加密传输协议,所以HTTPS和HTTP2没有本质的联系 HTTPS 因为http的利用明文进行传输的,所以存在不安全性,https使用SSL\TLS协议对http报文进行加密传输 http的默认端口为80,而https的默认端口为443 在讲解https加密传输之前我们还需要先解释公钥和私钥 公钥和私钥 在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开

klay的博客 2368

微信自动化进阶:Python识别特定消息并自动回复(基于win32api控件操作)

本文详细介绍了如何使用Python和win32api实现微信消息的智能监控与自动回复。通过精准识别聊天记录中的特定关键词,结合多级匹配策略和性能优化技巧,构建稳定高效的自动化回复系统,适用于企业客服、个人助手等场景。

weixin_42663213的博客 441

http/https 1.0、1.1、2.0

HTTPS和HTTP的区别 什么是 HTTPS? HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。 你也可以说:HTTPS = HTTP + SSL HTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。 为什么需要 HTTPS ? 超文本传输协议 (H

bieleyang的博客 1万+

STM32L151C8T6低功耗实战:RTC闹钟唤醒停机模式的配置与优化

本文详细介绍了如何在STM32L151C8T6微控制器上配置与优化RTC闹钟唤醒停机模式,以实现极致的低功耗设计。文章从核心原理出发,结合STM32CubeMX配置实战,深入讲解了进入停机模式前的关键准备工作、唤醒后的系统恢复流程,并分享了将功耗降至个位数微安级的深度优化技巧与常见问题解决方案。

weixin_29166013的博客 301

TensorRT-LLM环境配置避坑指南:从安装到实战

本文是一份详尽的TensorRT-LLM环境配置避坑指南。文章重点解析了从Python、CUDA、PyTorch版本选择,到解决mpi4py安装这一核心难题的完整流程,并提供了经过验证的稳定版本组合与实战排错方案,帮助开发者高效部署大语言模型推理优化环境。

a0b1c2d3的专栏 983

HTTP1.0 1.1 2.0 HTTP和HTTPS结构区别 加密流程

此外,HTTPS用的是443端口,HTTP用的是80端口 HTTP协议报文:请求报文和响应报文 HTTP请求: 由四部分组成:请求行(含请求方法GET或POST,以及URL),请求头部,空行,请求数据 请求头部:含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。例如 Accept:浏览器能接受的媒体类型; Accept-language:可接受的语言 ...

emmmsuperdan的博客 2758

跨越移植陷阱:ESP-IDF下LVGL与ILI9341的组件化集成与常见避坑指南

本文详细解析了在ESP-IDF环境下将LVGL图形库与ILI9341显示屏驱动进行组件化集成的完整流程。重点介绍了移植过程中的关键配置策略、内存管理优化技巧以及常见问题解决方案,帮助开发者有效规避内存溢出、显示异常等典型陷阱,实现高效稳定的嵌入式GUI开发。

yhn456789的博客 623

HTTP/2.0协议详解

HTTP/2.0:互联网通信的革新标准随着互联网技术的飞速发展,HTTP协议作为互联网应用最广泛的通信协议,也在不断演进和优化。HTTP/2.0是HTTP协议的最新版本,它旨在提供更高效、更安全、更快速的互联网连接。

技术人集结地 6849

RDMA学习笔记-IB五层网络协议和报文结构

Reference InfiniBand Architecture Specification Volume 1, Release 1.3 文章目录IBA 网络协议分层1.链路层1.1 LRH1.2 ICRC1.3 VCRC2.网络层(GRH)3.传输层3.1 BTH3.2 extended transport header4. 报文结构4.1 send request4.2 RDMA Write request4.3 RDMA Read request4.4 ACK4.5 Atomic operatio

u014114310的博客 9467

Python与Wind量化接口实战:从配置到数据提取全流程解析

本文详细解析了Python与Wind量化接口的实战应用,从环境配置到数据提取全流程。通过Anaconda管理Python环境,安装WindPy接口,实现历史行情、截面数据和实时行情的查询与优化。文章还提供了高级功能如批量查询、数据缓存策略及实战案例,帮助开发者高效构建量化分析框架。

omega的博客 1327

综合阐述http1.0/1.1/2和https

目录 http协议(超文本传输协议) http1.0 http1.1 HTTP/1.1相较于 HTTP/1.0 协议的区别主要体现在: http2 https HTTPS的加密算法:  Http与Https的区别: http响应状态码 http协议(超文本传输协议) 是客户端和服务器端两者通信共同遵循的一些规则。主要内容是定义了客户端如何向服务器请求资源,服务器如何响应客户端...

眼里长着太阳,笑里全是坦荡 1万+

「深度学习之优化算法」(五)差分进化算法

每次迭代将先进行变异操作,选择一个或多个个体的基因作为基,然后选择不同的个体的差分来构成差分基因,最后将作为基的基因与差分基因相加来得出新的个体。,大喊一声,进化吧,魔王兵i的基因改变了。交叉率CR,影响基因取自变异基因的比例,由于至少要保留一位自己的基因和变异的基因导致CR在该问题上对算法性能的影响不大(这个问题比较简单,维度较低,影响不大)。与遗传算法同为进化算法的差分进化算法,它们的操作(算子)也都非常相似的,都是交叉,变异和选择,流程也几乎一样(遗传算法先交叉后变异,差分进化算法先变异后交叉)。

quanzhan_King的博客 1505

HTTP1.0 / 1.1 / 2.0 及HTTPS

HTTP1.0 / 1.1 / 2.0 及HTTPS HTTP1.1 是当前使用最为广泛的HTTP协议 HTTP1.0 和 HTTP1.1 相比 HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。 缓存处理:在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策

weixin_52703987的博客 1637

《PLECS仿真与实战:从建模到高端应用》-专栏文件目录

《PLECS仿真与实战:从建模到高端应用》是一本系统介绍PLECS电力电子仿真软件的实用指南。全书共10章,首先介绍软件安装与基础操作,包括RC电路仿真等入门内容;随后深入讲解各类电力电子电路的建模与仿真,涵盖整流、交交变换、直流变换、逆变等电路;最后探讨PWM控制建模和直流调速系统等高端应用。书中配有丰富的示例程序和波形分析方法,附录还包含电力电子器件、代码生成等实用资料。该书适合电力电子领域工程师和学生系统学习电路仿真技术。

540

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

HTTP/1.0、HTTP/1.1、HTTP/2.0版本的区别以及HTTPS

tcp/ip 要了解HTTP的话我们不得不提一下tcp/ip协议 tcp/ip协议就是利用ip进行计算机间通信的协议群的总称,HTTP是tcp/ip协议里面的子集,HTTP通信的建立,包括我们熟悉的三次握手四次挥手等,都是建立tcp连接时的机制,关于tcp/ip网上有很多资料,这里不做扩展。 HTTP http协议的是一种建立在请求响应模式下的,用于客户端与服务端进行通信的协议,其主要特点有: 1、基于请求响应模式,即客户端发送请求服务器响应请求。 2、HTTP是不保存状态的协议,也就是说当客户端完成一次请

weixin_41793026的博客 1150

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

详解HTTP/1.0、HTTP/1.1、HTTP/2、HTTPS

一. 什么是HTTP协议:摘自百度百科:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WW...

李浩东的博客 4392

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

浅谈Http1.0/Http1.1/Http2.0/Https

HTTP 1.0 → HTTP 1.1 长连接 HTTP 1.1默认支持长连接,减少了TCP连接次数,节约开销。 HTTP 1.0所保持的TCP每次只能处理一个请求,最典型的就是pipline管线化模型,虽然能一次性接收多个请求,但是还是得按顺序一次处理一个请求,这样很容易造成后续请求等待前序请求完成,造成阻塞,也就是我们常说的”线头阻塞”。 总结:HTTP 1.0需要使用kee...

weixin_30569033的博客 191

http/1.0/1.1/2.0与https的比较

  HTTP是HyperText Transfer Protocol的缩写,译为超文本传输协议。是一种应用于OSI七层模型中应用层的协议,是我们平常互联网网络通信传输的基础。它的作用就是规定了服务器和客户端之间的建立连接,请求数据,响应数据,关闭连接(我们常说的三次握手,四次挥手)。 建立连接阶段:进行三次握手:1.客户端向服务端发送连接请求,2.服务端回应客户端:ok,已经确认,3,客户端回应...

weixin_30301183的博客 572

HTTP和HTTPS一些注意点(区别、HTTPS通信过程、SSL/TLS的区别、HTTP1.0/1.1/2.0 的区别)

HTTP和HTTPS一些注意点(区别、HTTPS通行过程、SSL/TLS的区别、HTTP1.0/1.1/2.0 的区别)1. HTTP和HTTPS的区别2. HTTPS中整个 SSL/TLS 的握手和通信过程3. SSL/TLS的区别4.HTTP1.0/1.1/2.0 的区别 1. HTTP和HTTPS的区别 HTTPS 并不是一个新的应用层协议,它其实就是 HTTP + TLS/SSL 协议组合而成,而安全性的保证正是 TLS/SSL 所做的工作。 也就是说,HTTPS 就是身披了一层 SSL 的 HTT

kuanyew的博客 1708

说说 HTTP1.0/1.1/2.0 、与HTTPS的区别、HTTPS 通信的具体流程

总结 HTTP协议和Https区别 安全性 默认端口 连接方式 HTTP1.0: 浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接 HTTP1.1: 引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用 虽然允许复用TCP连接,但是同一个TCP连接里面,所有的数据通信是按次序进行的,服务器只有处理完一个请求,才会接着处理下一个请求。如果前面的处理特别慢,后面就会有许多请求排队等着 新增了新的请求方法 -------- option、put 、delete

yiyueqinghui的博客 5931

HTTP/1.1-HTTP/2.0-HTTP/3.0-HTTPS

HTTP/1.1 网上关于HTTP/1.1的讨论多是基于RFC2616文档,而IETF已更新了HTTP/1.1并将其分为六个部分,使协议变得更简单易懂,对老版本RFC2616中模糊不清的部分做了解释 RFC7230-消息语法与路由 RFC7231-语义与路由 RFC7232-条件请求 RFC7233-范围请求 RFC7234-缓存 RFC7235-认证 RFC7230-消息语法与路由 客户端/...

weixin_30760895的博客 313

HTTP基本学习与演变中(HTTP/0.9,HTTP/1.0,HTTP/1.1,HTTP/2.0,HTTPS)的比较

HTTP(超文本传输协议) HTTP由两个程序实现,一个用户程序和一个服务器程序,客户程序和用户程序运行在两个不同的端系统,通过交换HTTP报文进行对话。 HTTP协议是基于TCP协议出现的, HTTP协议格式 通用首部字段 Cache-Control:该字段用于控制缓存的时效性,由多个参数可选,通过“,”分隔 例如no-cache,在客户端表示强制向源服务器再次验证资源,即不使用缓存,从源服务...

zem 853

116、HTTP和HTTPS的区别?GET和POST的区别?HTTP/1.1和HTTP/2.0的区别?HTTP缓存?

而HTTP/2.0引入了Steam概念,多个Steam可以复用在同一个TCP连接上,每个Stream中又可以包含多个Message,而Message对应的是HTTP/1.0中的请求与响应,这种并行处理的能力让HTTP/2.0在处理多个请求时更加高效。当资源过期时客户端会向服务端发起请求,其中请求头字段If-None-Match的值会被设置为ETag的值,然后服务端会比较ETag来判断资源是否更新了,如果ETag相同则返回304状态码,如果ETag不同,则返回200状态码和新的资源和更新后的ETag。

m0_61310685的博客 254

HTTP/1.0/1.1/2.0的区别以及http和https的区别

如何优雅的谈论HTTP/1.0/1.1/2.0试想一下,一个科班出身,拥有丰富开发经验的程序员对于HTTP协议却不甚了解?还是很尴尬的!这么一个可以说是常识的问题,可能很多人在没有积极准备的情况下,不一定能很好的回答出来。这是一个正规程序员所本应了解的原理,如果一个程序员在这些常识性的问题上都没有很好的思考,那么在以后的职业发展中未必能更好的承担更高难度的工作。功夫在细节,谁说不是呢?本文将涉及以...

祥哥的说 2万+
上一篇: 数据库系统的关系数据库设计理论、ER图
下一篇: GET和POST比较
trytrylmt
博客等级 码龄9年 7粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值