一文了解https为什么是安全的
目录
- 前言
- 一、https和http
- 二、http为什么不安全?
- 2.1 http的工作原理
- 2.2 http的明文传输
- 三、https
- 3.1 加密
- 3.2 身份验证
- 四、总结
前言
目前绝大多数网站都已经切换到了https,切换的原因很简单,因为它更安全,https未来会完全取代http,本文从https与http的简介了了解http为什么不安全以及https为什么安全。
一、https和http
HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,是Web上数据交换的基础。HTTP是一个无状态的协议,即服务器不会在两个请求之间保留任何数据。它是建立在TCP/IP协议之上的。
HTTPS(Hypertext Transfer Protocol Secure)是HTTP的安全版本,通过在HTTP和TCP之间加入SSL/TLS协议来加密数据传输。HTTPS的加密机制可以确保数据在传输过程中不被窃取或篡改,因此更适合用于传输敏感信息,如个人信息、银行信息等。
总的来说,HTTP是一种用于传输超文本的协议,而HTTPS是对HTTP的加密和安全扩展。在网站安全性要求较高的情况下,通常会采用HTTPS协议来保护数据传输的安全。
二、http为什么不安全?
要了解http为什么不安全,首先要明白http的基础工作原理。
2.1 http的工作原理
在手机或电脑进行http请求的时候,实际上是浏览器或其他应用程序将一个http的请求报文发送到了服务器。

服务器收到这个请求报文之后,去处理,处理之后,返回一个响应报文。

但是这个请求是怎么到达对方服务器的呢?
在实际的网络中,我们的消息会经过很多的中间节点,比如我们的路由器、小区的网关等等,这些节点会以接力的形式帮我们一步步转发消息,一步步的让消息到达目标服务器。

最终服务器才接收到这个消息并进行处理。
那么中间的转发者又是怎么转发这些消息的呢?
如果它能够原封不动的发送到下一节点,那么一切都很顺利,但是如果它篡改了我们发送的消息呢,那不就坏事了!
其实不只是篡改,单纯的窃听也很有风险,比如我们在发送自己的账号密码到服务器上时,路上的每一个节点都能看到,这是不是很危险?而且不只是中间节点,网络中的其他节点也是可以对消息进行监听的。
所以网络从本质上就不可避免地会让别人看到我们发送和接受的信息。这个是http不安全的原因之一。但是总不能因为这个把整个网络结构改了吧?
这就涉及到http不安全的另一个原因:明文传输
2.2 http的明文传输
所谓明文传输就是将消息内容不做任何修饰加工就直接传输。与之对应的一个概念就是加密。
三、https
3.1 加密
https就是通过加密来让消息变得安全。https把http消息进行加密之后再传送,这样别人就算拿到之后也看不懂,这样就做到了安全!
具体来说,https是通过对称加密、非对称加密、哈希算法共同作用来在性能和安全性上达到一个平衡。
加密是会影响传输性能的,尤其是非对称加密,因为它的算法比较复杂。
3.2 身份验证
光是加密就确保安全了吗?https不仅对消息进行了加密,而且对通信对象进行了身份验证。
如果我要访问www.xxx.com,需要知道我的访问对象确定是目标xxx.com而不是被拦截了网络请求然后被转移到一个其他的地址,这种拦截在http里是可以做到的,你有没有在浏览器中输入想要的网站,但是页面加载过程中突然被转移到了一个其他冒红点的其他网站,这就是被拦截到其他地址去了。

但是https引入了证书机制,通过证书链可以对访问对象进行身份验证,能够保证你所访问的对象一定是你认为的那个对象。


不然浏览器就会警告提醒,而在代码开发中,会报异常。

那么直接在http上实现加密、证书机制不就得了嘛?为什么还要引出一个新的https呢?毕竟一个新的东西涉及到兼容性、大众接受度、换代周期等等。
事实上,https也的确是这么做的,
https并不是一种新的协议,它使用了一种TLS(Transport Layer Security)传输层安全性协议,这个安全提提供了数据加密的支持,让http消息运行在这个安全层上就达到了安全,而运行在这个安全层上面的http,就叫做https,htttp Security。
四、总结
看完上面内容,相信会对https和http有一个较深的理解了,但是加密过程中的对称加密、非对称加密、哈希算法,以及证书机制在这里并未深入讲到,不妨看这篇文章:彻底搞懂HTTPS的加密原理
相关文章:
一文了解https为什么是安全的
目录 前言一、https和http二、http为什么不安全?2.1 http的工作原理2.2 http的明文传输 三、https3.1 加密3.2 身份验证 四、总结 前言 目前绝大多数网站都已经切换到了https,切换的原因很简单,因为它更安全,https未来会完全取代…...
[‘column‘]和[:,‘column‘]的区别
之前,关于numpy和pandas的操作一直不熟悉,对于获取数据中的行,列一直混淆。 df[column] df[column]是 Pandas DataFrame 切片的常用语法,用于选择名为 column 的单个列。它返回一个 Pandas Series 对象。 df.loc[:,column] df[:,…...
icloud如何高效利用
iCloud是Apple提供的一项云存储和云计算服务,能够帮助用户在不同的Apple设备之间同步和共享数据。要高效利用iCloud,可以参考以下几个方面: 自动备份:确保所有重要的Apple设备都开启了iCloud备份功能,这样可以自动将设…...
k8s二进制安装与部署
目录 一、实验目的 二、实验环境 三、实验步骤 3.1 操作系统初始化配置 3.2 部署 docker引擎 3.3 部署 etcd 集群 3.3.1 在 master01 节点上操作 3.3.2 在 node01 节点上操作 3.3.3 在 node02 节点上操作 3.4 部署 Master 组件 3.4.1 在 mast…...
驱动编译报error: negative width in bit-field ‘<anonymous>’错误
错误如下图所示: 代码如下: 问题点:module_param的其他用户的权限参数上。 在Linux中,文件权限由读(r)、写(w)、执行(x)权限组成,分别对应数值4、2、1。 第一位0是占位符,在这里没有意义,因为…...
Go语言的命名规范是怎样的?
文章目录 Go语言的命名规范详解一、标识符命名规范示例代码 二、包名命名规范示例代码 三、变量命名规范示例代码 四、常量命名规范示例代码 五、函数命名规范示例代码 总结 Go语言的命名规范详解 在Go语言中,代码的命名规范对于项目的可读性、可维护性和可扩展性至…...
Vue3骨架屏(Skeleton)
效果如下图:在线预览 APIs 参数说明类型默认值必传animated是否展示动画效果booleantruefalsebutton是否使用按钮占位图boolean | SkeletonButtonPropsfalsefalseavatar是否显示头像占位图boolean | SkeletonAvatarPropsfalsefalseinput是否使用输入框占位图boolea…...
【文末附gpt升级方案】亚马逊与Hugging Face合作:定制芯片低成本运行AI模型的创新探索
亚马逊与Hugging Face合作:定制芯片低成本运行AI模型的创新探索 摘要 本文探讨了亚马逊云部门与人工智能初创公司Hugging Face的合作,旨在通过定制计算芯片Inferentia2在亚马逊网络服务(AWS)上更低成本地运行数千个AI模型。文章首…...
二叉树的链式实现
目录 一、二叉树的基础操作 二、二叉树代码图解 2.1 遍历 2.2 求大小 2.3 创建与销毁 2.4 与队列结合解决问题 三、二叉树C语言源码汇总 二叉树的代码实现运用了函数递归的思想,了解函数递归的知识请见博主的另一篇博客: http://t.csdnimg.cn/Po…...
STM32中断编程入门
文章目录 一、 理论部分1.中断系统2.中断执行流程3.NVIC的基本结构4.EXTI介绍5.AFIO复用IO口 二、实验目的:学习stm32中断原理和开发编程方法。使用标准完成以下任务:(一)实验一 开关控制LED的亮灭1.代码部分2.运行结果 ÿ…...
《我的阿勒泰》读后感
暂没时间写,记录在此,防止忘记,后面补上!!! 【经典语录】 01、如果天气好的话,阳光广阔地照耀着世界,暖洋洋又懒洋洋。这样的阳光下,似乎脚下的每一株草都和我一样,也把身子完全舒展开了。 02、…...
Android.mk简单介绍、规则与基本格式
文章目录 Android.mk与makefile区别Android.mk规则Android.mk基本格式 Android.mk与makefile区别 Android.mk 和 Makefile 都是用于构建代码项目的构建脚本文件,但是它们在特定上下文中有一些区别: Android.mk: Android.mk 是用于构建 Android 应用或库…...
【MySQL精通之路】InnoDB(3)-MVCC多版本管理
InnoDB是一个多版本(MVCC)的存储引擎。 它保留有关更改行的旧版本的信息,以支持事务性功能,如并发和回滚。 这些信息存储在称为回滚段的数据结构中的Undo表空间中。 参见“Undo表空间”。 InnoDB使用回滚段(rollback…...
uniapp 对接 微信App/支付宝App 支付
相关文档:uni.requestPayment(OBJECT) | uni-app官网 示例代码: import qs from qsasync aliPay(){const { provider } await uni.getProvider({ service:payment })if(provider.includes(alipay)){uni.request({url:后端接口地址,data:{ //传参 },suc…...
cmake配置opencv与boost库
Cmake配置外部依赖库(以Opencv和Boost为例) Cmake对于外部依赖库,需要知道外部库的头文件路径,库文件路径以及库的名字。比如,对于要使用的Boost库,需要知道头文件的位置,库目录的位置以及库依…...
【Kotlin 一】Kotlin入门知识简介、变量声明、数字类型
1. Kotlin简介 Kotlin旨在解决 Java语言在编码效率和代码质量上存在的问题,并且与Java语言完全兼容。Kotlin通过简化语法、提供更强大的函数以及减少样本代码的编写,使开发者能够更高效地编写代码。Kotlin适用于Android、Web后端开发等多种场景 2.Kotl…...
Java 微信小程序登录(openId方式)
1 需求 在开发微信小程序项目时,登录采用的是openId方式,这是一种用户无感的登录方式,用户点开微信小程序时,去调用后端的登录接口。 核心代码 Slf4j Component public class WeChatUtil {private static final String …...
为何程序员35岁就开始被嫌弃了?程序员该如何避免中年危机?
文章目录 一、为何程序员35岁就开始被嫌弃了?1、技术更新迅速2、职业发展瓶颈3、成本考虑4、年龄歧视5、市场供需变化6、个人因素 二、程序员该如何避免中年危机?1、持续学习与技能更新2、拓展技术广度与深度3、提升软技能4、关注行业趋势与市场变化5、建…...
【2024软考】史上最全!软考刷题+解析大合集(9万字全手工打,货真价实)
计算机基础知识 1.中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号(INTR)以后,由中断控制器(INTC)确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地…...
【Spring Security + OAuth2】授权
Spring Security OAuth2 第一章 Spring Security 快速入门 第二章 Spring Security 自定义配置 第三章 Spring Security 前后端分离配置 第四章 Spring Security 身份认证 第五章 Spring Security 授权 第六章 OAuth2 文章目录 Spring Security OAuth21、基于request的授权1…...
2001-2024年上市公司供应链地理距离
一家企业的供应商和客户,究竟分布在多远的空间范围内? 这一问题不仅关系到企业采购与销售网络的空间延伸程度,也关系到区域市场整合、要素跨区流动以及企业突破本地市场约束的能力。已有研究表明,企业的供应商选择和客户拓展通常会…...
重装 Office 必看:Win10/Win11 完美卸载 Office 2021(附视频)
不少人在使用 Office 2021 时会遇到卡顿、打不开、激活异常、功能报错等问题,常规修复与重置往往解决不了根源,最终只能选择卸载重装。但很多用户自己手动卸载时,经常遇到卸载不干净、注册表残留、再次安装冲突、激活失败等麻烦,折…...
Ryujinx终极指南:免费开源Switch模拟器从零到精通的完整教程
Ryujinx终极指南:免费开源Switch模拟器从零到精通的完整教程 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上畅玩《塞尔达传说:王国之泪》《集合啦&a…...
CPV10-GE-DN3-8控制阀端子
CPV10-GE-DN3-8控制阀端子是一款应用于气动控制系统中的关键连接与分配单元,主要用于阀岛系统中的信号与气路接口管理,具备结构紧凑、连接可靠等特点,广泛应用于自动化生产线及工业控制领域。模块化设计,便于系统扩展与组合使用接…...
Flut Renamer终极指南:3分钟掌握跨平台批量文件重命名技巧
Flut Renamer终极指南:3分钟掌握跨平台批量文件重命名技巧 【免费下载链接】renamer Flut Renamer - A bulk file renamer written in flutter (dart). Available on Linux, Windows, Android, iOS and macOS. 项目地址: https://gitcode.com/gh_mirrors/ren/rena…...
【传统图像增强算法3】- 伽马校正(Gamma Correction)完全解析
三、伽马校正(Gamma Correction) 3.1 伽马校正核心定义与应用价值 在图像增强、显示校准的实际应用中,我们常常会遇到一个问题:人眼对亮度的感知是非线性的,而显示设备(LCD/OLED/CRT)的输入输出…...
告别本地配置!Core72在线IDE:5分钟打造云端开发环境终极指南
告别本地配置!Core72在线IDE:5分钟打造云端开发环境终极指南 【免费下载链接】core Online IDE powered by Visual Studio Code ⚡️ 项目地址: https://gitcode.com/gh_mirrors/core72/core 还在为复杂的本地环境配置而烦恼吗?Core72…...
在 ADT 里把 Released API 和 Deprecated Object 找明白,才算真正摸到 ABAP Cloud 开发的门道
很多人刚从经典的 On-Premise 开发切到 ABAP Cloud,最不适应的地方,不是 RAP,也不是 CDS view entity,而是眼前明明有一个类、一个接口、一个 CDS 实体,你却不能因为它存在就直接用。你得先确认它是不是 released,属于哪个 release contract,有没有被放进可用的 API Cat…...
AppleRa1n激活锁绕过工具:技术解析与合规应用指南
AppleRa1n激活锁绕过工具:技术解析与合规应用指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 激活锁机制在保护用户数据安全的同时,也为合法设备所有者带来了使用障碍。本文…...
比迪丽LoRA模型Agent智能体开发:自主完成多轮绘画创作任务
比迪丽LoRA模型Agent智能体开发:自主完成多轮绘画创作任务 最近在玩AI绘画的朋友,可能都有过这样的体验:脑子里有个很酷的画面,但把它变成AI能理解的提示词,却是个技术活。你得琢磨关键词、调整风格、设置参数&#x…...
