作者:RedRain 链接:http://www.jianshu.com/p/37654eb66b58 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Http和Https的区别
1.什么是Http
Http中文叫做
超文本传输协议, 它完成客户端到服务端等一系列运作流程1.1 与http关系密切的协议: IP, TCP和DNS
负责传输的IP协议
IP协议数据网络层, IP协议的作用是把各类数据包传送给对方. 而要确保确实传送到对方那里, 则需要满足各类条件. 其中两个重要的条件是IP地址和MAC地址.
IP地址指明了节点被分配到的地址, MAC地址是指网卡所指的固定地址. IP地址和MAC地址进行配对, IP地址可以变换, 但是MAC地址基本不会更改.
确保可靠性的TCP协议
TCP位于传输层, 提供可靠的字节流服务
字节流服务: 为了方便传输, 将大块数据分割成以报文段为单位的数据包进行管理.
为了确保无误将数据送达目标处, TCP协议采用了三次握手策略.当然除了三次握手策略, 还有很多其他的手段保证通讯的可靠性
负责域名解析的DNS服务
DNS服务是和HTTP协议一样位于应用层的协议. 他提供域名与IP地址之间的解析服务.
因为记住一组纯数字太难了, 而字母加数字才是人类习惯的方式,为了解决这个问题, DNS服务营运而生.
2. HTTP的缺点
- 通信使用明文(不加密), 内容可能会被窃听
- 不验证通信方的身份, 因此有可能遭遇伪装
- 无法证明报文的完整性, 所有有可能已遭篡改
3.HTTP+加密+认证+完整性保护 = HTTPS
HTTPS并非是应用层的一种新协议. 只是HTTP通信接口部分用SLL(Secure Socket Layer)和TLS (Transport Layer Security) 协议替代而已.
通常, HTTP直接和TCP通信, 当使用SSL时, 演变成了先和SSL通信, 再由SSL和TCP通信了, 简而言之, 所谓HTTPS, 其实就是身披SSL协议的这层外壳的HTTP.
在采用SSL后, HTTP就拥有了HTTPS的加密, 证书和完整性的保护这些功能.
SSL是独立于HTTP的协议, 所有不光是HTTP协议, 其他运行在应用层的SMTP(邮件协议)和Telnet等协议均可配合SSL协议使用. 可以说SSL是当今世界上应用最广泛的网络安全技术.
4.SSL是如何加密的
SSL采用一种叫做公开密钥加密(Public-key cryptography)的加密方式.
近代的加密方法中, 加密算法是公开的, 而秘钥是保密的, 通过这种方式得以保持加密方法的安全性.
共享密钥加密的困境
加密和解密同用一个密钥的方式称为共享密钥加密, 也被叫做对称密钥加密.
共享加密方式加密时必须将密钥也发给对方. 在互联网上转发密钥时, 如果通信被监听那么密钥就会落入攻击者之手, 同事也就失去了加密的意义,
怎么才能安全的转交?
使用两把密钥的公开密钥加密
公开密钥加密方式很好地解决了共享密钥加密的困难公开密钥加密使用一对非对称的密钥. 一把叫做私有密钥, 另一把叫做公开密钥
使用公开密钥加密方式, 发送密文的一方使用对方的公开密钥进行加密处理, 对方收到被加密的信息后, 在使用自己的私有密钥进行解密. 利用这种方式, 不需要发送用来解密的私有密钥, 也不用担心密钥被攻击者窃听而盗走.
另外, 要想根据密文和公开密钥, 恢复到信息原文是异常困难的, 因为解密过程就是在对离散对数进行求值, 这并非轻而易举就能办到的. 退一步讲, 如果能对一个非常大的整数做到快速地因式分解, 那么密码还是在存在希望的, 但就目前的技术来看是不太现实的.
HTTPS采用混合加密机制
HTTPS采用共享秘钥加密 和 公开秘钥加密两者并用的混合加密机制. 若密钥能够实现安全交换, 那么有可能会考虑仅适用公开密钥加密来通信. 但是公开密钥加密和共享密钥加密相比, 其处理速度要慢.
所以应充分利用两者各自优势, 将多种方法组合起来用于通信. 在交换密钥环节适用公开密钥加密方式, 之后的建立通信交换报文阶段则使用共享密钥加密方式.
5.证明公开密钥的正确性的证书
遗憾的是, 公开密钥加密方式还是存在一些问题的, 那就是无法证明公开密钥本身就是货真价实的公开密钥. 比如, 正准备和某台服务器建立公开密钥加密方式下的通信时, 如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥. 或许在公开密钥传输途中, 真正的公开密钥已经被攻击者替换了.
为了解决上述问题, 可以使用有
数字证书认证机构和其他相关机关颁发的公开密钥证书基本流程为:
- 1.服务器把自己的公开密钥登录至数字证书认证机构
- 2.数字证书认证机构用自己的私有密钥向服务器的公开密钥署数字签名并颁发公钥证书
- 3.客户端拿到服务器的公钥证书后, 使用数字证书认证机构的公开密钥, 向数字证书认证机构验证公钥证书上的数字签名, 以确认服务器的公开密钥的真实性
- 4.使用服务器的公开密钥对报文加密后发送
- 5.服务器用私有密钥对报文解密
6.SSL速度慢吗?
由于HTTPS还需要做服务器,客户端双方加密及解密处理, 因此会消耗CPU和内存等硬件资源, 和HTTP通信相比, SSL通信部分消耗网络资源. 而SSL通信部分, 有因为要对通信进行处理, 所有时间上又延长了.
针对速度慢这样一个问题, 并没有根本性的解决方案, 我们会使用SSL加速器这种(专用服务器)硬件来改善该问题. 相对软件来讲, 能够提高数倍SSL计算速度.
7.为什么不一直使用HTTPS
既然HTTPS那么的可靠安全, 那为何不所有的Web网站不一直使用HTTPS?
其中的一个原因是, 因为与纯文本通信相比, 加密通信会消耗更多的CPU资源以及内存资源, 如果每次通信都加密, 会消耗相当多的资源, 平摊到一台计算机上时, 能够处理的请求数量必定会随之减少.
因此, 如果是非敏感信息则使用HTTP通信, 只有在包括个人信息等敏感数据时, 才利用HTTPS加密通信, 以节省资源. 除此之外, 想要节约购买证书的开销也原因之一.
相关推荐
Android无线调试:adb tcpip连接实战指南
本文详细介绍了Android无线调试的完整流程,重点讲解如何使用adb tcpip命令通过Wi-Fi连接设备,摆脱数据线束缚。涵盖环境配置、连接实战、稳定性优化及常见问题排查,帮助开发者高效实现无线adb调试,提升工作效率。
SSL协议、HTTP和HTTPS和区别
SSL协议 SLL协议的握手过程 开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手(handshake)。 第一步,客户端给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。 第二步,服务器确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)。 第三步,客户端确...
python后端的支付宝小程序用户认证问题(alipay-sdk-python、pycrypto无法安装)
python后端的支付宝小程序用户认证问题(alipay-sdk-python、pycrypto无法安装) 写在前面 事先说明,本人不是大佬,我只是在不断探索的途中找到了解决这个问题的方法,之前在网上搜索的时候没有看到相关文章,所以就来简单讲一下。 正文 借着蚂蚁金服小程序大赛开通了支付宝小程序个人开发者,尝试将一个微信小程序的项目移植到支付宝上,支付宝对于用户唯一id的获取比微信要复杂很多,微信...
http与https
简单描述 我们都知道http是一个基于请求,响应的为无状态,应用层传输协议。它是明文传输,就像没有穿衣服的姑娘。 https就是要为她穿上衣服,这件衣服就是SLL/TLS。 https 有更复杂的 握手过程所以在建立连接是也更耗时,由于存在加密解密的过程,自然也会更消耗性能。 在https 的加密过程中会存在 将 使用对称加密和非对称加密同时使用。 为什么不直接都是用非对称加密勒? 因为非对称加密 比 堆成加密的性能消耗大,效率低 对http报文的加密是用对称加密的,这就需用客户端和服务端都需要知道同一个秘
TC397 EB配置ADC软件触发:从零实现周期采样与中断处理
本文详细介绍了如何在Infineon AURIX TC397芯片上使用EB Tresos工具配置ADC软件触发,实现周期采样与中断处理。通过硬件连接、EB模块配置、代码初始化及数据处理的全流程解析,帮助开发者快速掌握ADC软件触发技术,提升嵌入式系统开发效率。
从零开始讲DDR(7)——modelsim独立仿真DDR4
本文主要内容为DDR4 MIG ip核仿真,modelsim独立仿真DDR4。在进行DDR仿真的时候,我们会面临一个以往常规仿真不存在的问题:DDR本身并不是一个我们通过RTL代码设计出来的部件,常规的模块或者IP仿真,都是基于RTL代码就能进行的,但是回顾一下我们DDR的开发流程,调用的IP核也只是MIG ip,其本质是一个DDRC+DDRPYH的组合,并不能模拟任何DDR本身的行为,因此,在进行仿真之前,我们首先要做的就是获取DDR的仿真模型。
ssl
ssl 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目审核。 SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密 解析 Secure Socket Layer,为Netsca
STM32F407+OV2640的DCMI+DMA双缓冲JPEG图像采集系统
在嵌入式视觉系统中,数字摄像头接口(DCMI)是MCU连接CMOS图像传感器的关键硬件通道,其与DMA协同实现零CPU干预的高速数据流采集;而JPEG作为一种基于DCT变换与量化压缩的有损图像格式,依赖传感器端硬件编码引擎才能满足实时性要求。理解DCMI三重同步时序(PCLK/HSYNC/VSYNC)与DMA双缓冲机制的流水线协作原理,是突破带宽瓶颈、避免FIFO溢出和帧丢失的技术基础。该架构广泛应用于智能硬件、工业检测与边缘AI前端等需低功耗、高可靠图像捕获的场景,本文以OV2640与STM32F407为
HTTP和HTTPS的区别
HTTP协议的基本格式-优快云博客。理解HTTPS加密-优快云博客。
Azure AI-102 认证全攻略: (二十八) 设置 Azure AI 服务 API
在本文中,您学习了如何通过 Azure 门户设置和管理 Azure AI 服务,以及如何通过编程方式访问这些服务。在这篇文章中,我们将深入探讨如何设置 Azure AI 服务,特别是如何通过 Azure API 来进行编程访问,以实现自动化和集成。通过本篇文章的学习,您不仅能够顺利完成 Azure AI-102 认证中的 API 配置和集成内容,还能高效地管理和优化 Azure AI 服务,构建稳定、可靠的 AI 应用。在成功设置并测试了 API 后,接下来要管理和维护您的 Azure AI 服务。
【新能源汽车DCDC变换器测试优化全攻略:解决电能质量/发热/过充等核心痛点】
高压直流转12V低压的DCDC变换器是新能源汽车电源系统的核心枢纽,承担着为整车低压附件、控制器及12V蓄电池供电/补电的关键作用。在新能源汽车乘用车、商用车等不同车型实际运营中,因PDU内DC/AC等模块干扰、DCDC自身设计缺陷、整车匹配性不佳及测试验证不充分,频发12V输出电能质量差导致后端元器件烧毁、变换器发热严重、蓄电池过充/欠充、智能补电功能失效等问题,还伴随低压侧电压瞬跌/浪涌、电磁干扰超标、振动后接触不良、高温下效率骤降等行业高频故障,直接影响整车可靠性和运营安全性。本文基于国标。
http 和 https 区别
一、HTTP和HTTPS的基本概念 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务端请求和应答的标准(TCP),用于从www服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,是网络传输减少。 HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSl。HTTPS协议的主要作用...
置顶必读(1) | 2026最新首发,全网最全 Spring Boot 学习宝典(附思维导图)
从0到1以知识点+实例+项目的教学模式对SpringBoot框架由浅入深进行学习,快来跟bug菌一起学习吧。
https和http有哪些区别
什么是HTTPS? HTTPS的全称是超文本传输安全协议(Hypertext Transfer Protocol Secure),是一种网络安全传输协议。在HTTP的基础上加入SSL/TLS来进行数据加密,保护交换数据不被泄露、窃取。 通俗的来说,就是: 当你登陆一个有网站的网页时形成, 在填写该表格并点击“提交”后,您输入的信息可能被黑客截获不安全网站。 这些信息可以是银行交易的详细信...
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
http和https的区别
HTTP与HTTPS的核心差异在于安全性。HTTPS通过SSL/TLS加密传输数据(默认443端口),而HTTP采用明文传输(80端口),存在信息泄露风险。HTTPS需CA证书验证身份,URL以"https://"开头,被搜索引擎优先收录。虽然加密过程会略微影响速度,但现代优化已大幅缩小差距。部署建议选择HTTPS,可使用Let's Encrypt免费证书,需注意HTTPS页面调用HTTP资源会被浏览器拦截。
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
HTTP 和 HTTPS 的区别
我想问下大家当初选择做程序员的初衷是什么?有思考过这个问题吗?高薪?热爱?既然入了这行就应该知道,这个行业是靠本事吃饭的,你想要拿高薪没有问题,请好好磨练自己的技术,不要抱怨。有的人通过培训可以让自己成长,有些人可以通过自律强大的自学能力成长,如果你两者都不占,还怎么拿高薪?架构师是很多程序员的职业目标,一个好的架构师是不愁所谓的35岁高龄门槛的,到了那个时候,照样大把的企业挖他。为什么很多人想进阿里巴巴,无非不是福利待遇好以及优质的人脉资源,这对个人职业发展是有非常大帮助的。
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
什么是HTTP,什么是HTTPS?HTTP和HTTPS都有哪些区别?
什么是HTTP,什么是HTTPS?HTTP和HTTPS都有哪些区别?
http 和 https_【java】http 和 https 的区别
点击上方蓝色字关注我们~试题http 和 https 的区别思考时间答案HTTPS和HTTP的区别主要如下:工作层:在OSI网络模型中,HTTP工作于应用层,而HTTPS工作在传输层。连接端口:HTTP标准端口是80,而HTTPS的标准端口是443。传输方式:HTTP是超文本传输协议,信息是明文传输,而HTTPS是SSL加密传输协议。工作耗时:HTTP耗时=TCP握手,而HTTPS耗时...
HTTPS和HTTP的区别
一、HTTP和HTTPS的基本概念 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性 二、HTT
java https http 区别_关于HTTP和HTTPS的区别
前言:在URL前加https://前缀表明是用SSL加密的。你的电脑与服务器之间收发的信息传输将更加安,Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。HTTPS(Secu...
721



被折叠的 条评论
为什么被折叠?



