Http 和 Https 的区别(图文详解)

在现代网络通信中,保护数据的安全性和用户的隐私是至关重要的。HTTP(Hypertext Transfer Protocol)和 HTTPS(Hypertext Transfer Protocol Secure)是两种常见的网络通信协议,但它们在数据保护方面的能力存在显著差异。了解这两者的区别,对于开发者和普通用户来说,都非常重要。

HTTP 是最基础的网络通信协议,用于在客户端(如浏览器)和服务器之间传输数据。然而,HTTP 协议在传输过程中并不对数据进行加密,这意味着任何在数据传输路径上的中间人都可能拦截和读取这些数据。这种缺乏安全保障的特性,使得 HTTP 不适合处理敏感信息,如登录凭据、财务数据等。

HTTPS 则是 HTTP 的安全版本,通过结合对称加密和非对称加密技术来保护数据传输的安全性。HTTPS 在通信过程中对数据进行加密,确保数据的机密性和完整性,同时使用数字证书来验证服务器的身份,从而防止中间人攻击。虽然 HTTPS 相比于 HTTP 可能会增加一些性能开销,但其提供的安全保障使其成为保护用户数据的标准选择。

在本篇文章中,我们将通过图文详解 HTTP 和 HTTPS 的工作原理,深入探讨它们的主要区别,包括加密机制、身份验证和数据完整性等方面。通过对比这两种协议,我们将揭示 HTTPS 如何在网络通信中提供更高级的安全保护,以及在何种情况下选择 HTTPS 是更加明智的决策。


文章目录

      • 1、Http 和 Https 介绍以及区别
        • 1.1、HTTP(超文本传输协议)
        • 1.2、HTTPS(超文本传输协议安全)
      • 2、HTTPS 工作原理
        • 2.1、内容加密
          • 2.1.1、 对称加密
          • 2.1.2、非对称加密
        • 2.2、身份验证
          • 2.2.1、数字证书
          • 2.2.2、验证过程
        • 2.3、数据完整性
          • 2.3.1、消息认证码
          • 2.3.2、完整性校验
      • 3、HTTPS 工作流程
        • 3.1、客户端发起连接
        • 3.2、服务器响应并发送证书
        • 3.3、客户端验证证书
        • 3.4、密钥交换
        • 3.5、建立安全连接
        • 3.6、数据传输
        • 3.7、关闭连接
      • 4、Https 优缺点
        • 4.1、HTTPS的优点
        • 4.2、HTTPS 的缺点


1、Http 和 Https 介绍以及区别

HTTP(Hypertext Transfer Protocol)和 HTTPS(Hypertext Transfer Protocol Secure)是用于在网络上进行通信的协议。它们的主要区别在于安全性和加密方式。

1.1、HTTP(超文本传输协议)

HTTP 是一种无状态的协议,负责从服务器传输网页和其他资源到客户端(通常是浏览器)。默认使用端口 80。数据在传输过程中是不加密的,因此可能被中间人(如网络嗅探器)窃听或篡改。由于没有加密,HTTP 不适用于需要保密和数据安全性要求高的应用场景,如在线支付或个人信息传输。常用于普通的网站和不涉及敏感信息的网络服务。

它的主要特点如下:

  1. 基于请求响应模式: HTTP 协议采用客户端-服务器架构模式,客户端向服务器发送请求,服务器返回相应的响应。这种模式能有效分离应用逻辑,提高系统的可维护性和扩展性。
  2. 基于文本传输: HTTP 协议使用ASCII码作为通信协议,每个请求和响应都是一条文本消息,这使得通信协议更加简单、直观、易于处理。
  3. 支持多媒体传输: HTTP 协议可以传输多种类型的数据,如 HTML、XML、JSON、图片、音频、视频等,这使得 HTTP 协议成为一种通用的网络传输协议,适用于各种不同类型的应用场景。
  4. 无连接: HTTP 协议是一个无连接协议,每个请求都是独立的,服务器处理请求后立即关闭连接。这有助于节省资源,但也带来了一些缺点,如需要重新建立连接、重复发送相同的头部信息等。
  5. 无状态: HTTP 协议没有客户端的状态存储,也没有事务处理的“内存”能力。这意味着每次访问网站时可能需要重复的登录操作。

然而,HTTP 协议也存在一些不足之处。由于它以明文方式发送内容,不提供任何方式的数据加密,因此安全性较差。如果攻击者截取了 Web 浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。因此,HTTP 协议不适合传输一些敏感信息,比如信用卡号、密码等支付信息。

image-20240722162153907

1.2、HTTPS(超文本传输协议安全)

HTTPS 是 HTTP 的安全版本,通过 SSL/TLS(安全套接层/传输层安全)协议对数据进行加密。默认使用端口 443。数据在传输过程中会被加密,确保数据的机密性和完整性,并提供身份验证以防止中间人攻击。通过加密通信保护数据,确保数据在传输过程中不会被窃取或篡改,适合处理敏感信息,如金融交易和个人数据。常用于需要安全保护的网站,如电子商务网站、网上银行、社交网络等。

与 HTTP 相比,HTTPS(Hypertext Transfer Protocol Secure)则是以安全为目标的 HTTP 通道。它在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 的内容加密、身份验证以及数据完整性保护的原理主要依赖于 SSL/TLS 协议。

image-20240722162424816

两者区别总结:

  1. 加密:HTTP:数据传输不加密,容易被拦截和窃听。HTTPS:数据传输加密,保障通信的安全性。
  2. 安全性:HTTP:缺乏数据加密和验证机制,安全性较低。HTTPS:通过 SSL/TLS 提供加密和身份验证,安全性较高。
  3. 端口:HTTP:端口 80。HTTPS:端口 443。
  4. 用途:HTTP:适用于不需要高度安全保护的普通网站。HTTPS:适用于需要保护用户数据安全的网站和应用。

总的来说,HTTPS 是 HTTP 的增强版,提供了更高的数据安全性,推荐用于所有需要保护用户隐私和敏感数据的网站。


2、HTTPS 工作原理

HTTPS(Hypertext Transfer Protocol Secure)通过结合对称加密和非对称加密来实现内容的加密和保护,同时使用数字证书来进行身份验证,并通过消息认证码(MAC)确保数据的完整性。以下是对这些机制的详细解释:

2.1、内容加密
2.1.1、 对称加密

在 HTTPS 连接建立之后,客户端和服务器会生成一个共享的会话密钥。这个会话密钥用于后续的数据加密和解密操作。双方使用这个密钥,通过对称加密算法(如 AES)对传输的数据进行加密,以确保数据在传输过程中的保密性和安全性。

  • 优点:对称加密的加密和解密速度较快,适合大量数据的加密操作。
  • 缺点:由于双方共享一个密钥,密钥的安全性直接影响到通信的安全。如果密钥被泄露或被截获,通信内容可能被解密。
2.1.2、非对称加密

在 HTTPS 握手阶段,服务器会将其公钥发送给客户端。客户端使用服务器的公钥加密一个随机生成的预主密钥,并将加密后的数据发送给服务器。服务器使用其私钥解密这个数据,从而安全地交换密钥。

image-20240722163713917

  • 优点:非对称加密用于安全地交换对称密钥,确保密钥交换过程中的安全性。
  • 缺点:非对称加密的计算速度较慢,会增加系统的计算负担。虽然公钥可以公开,但私钥必须保密以防止数据被解密。

结合使用:HTTPS 将对称加密和非对称加密结合使用,以利用对称加密的高效性和非对称加密的安全性。

2.2、身份验证

HTTPS 使用数字证书来验证服务器的身份,确保客户端连接的是一个合法的服务器。

2.2.1、数字证书

数字证书由权威的证书颁发机构(CA)签发,包含了服务器的公钥、身份信息和 CA 的数字签名。服务器在建立 HTTPS 连接时,会将这个证书发送给客户端。

2.2.2、验证过程

客户端在收到证书后,会执行以下检查:

  • CA 颁发:检查证书是否由受信任的 CA 颁发。
  • 证书有效性:验证证书是否过期。
  • 身份匹配:确认证书中的服务器身份信息是否与实际连接的服务器匹配。
  • 签名验证:使用 CA 的公钥验证证书上的数字签名,确保证书在传输过程中未被篡改。

通过这些步骤,客户端可以确认服务器的身份,确保与之通信的安全性。

2.3、数据完整性

HTTPS 使用消息认证码(MAC)来确保数据在传输过程中的完整性和安全性。

2.3.1、消息认证码

每个传输的数据包都会附带一个 MAC 值。MAC 值是通过将数据包的内容和会话密钥输入到哈希函数中计算得出的。只有持有相同会话密钥的接收方才能计算出正确的 MAC 值。

2.3.2、完整性校验

接收方收到数据包后,会使用相同的会话密钥和哈希函数计算 MAC 值,并与数据包中附带的 MAC 值进行比较。如果两个 MAC 值相同,则可以确认数据包在传输过程中没有被篡改,从而保证数据的完整性和安全性。

image-20240722164040858


3、HTTPS 工作流程

HTTPS(Hypertext Transfer Protocol Secure)是 HTTP 的安全版本,利用 SSL/TLS(安全套接层/传输层安全)协议来加密和保护数据传输。

HTTPS 通过以下几个主要方面保障了数据传输的安全性:

  • 加密:使用对称加密保护传输的数据;
  • 身份验证:使用数字证书验证服务器的身份;
  • 数据完整性:确保数据在传输过程中没有被篡改。

HTTPS 确保了数据的机密性、完整性和安全性,是现代网络通信中保护用户数据和隐私的重要技术。

HTTPS 的工作原理可以分为以下几个主要步骤:

3.1、客户端发起连接

当客户端(如浏览器)访问一个 HTTPS 网站时,它会发起一个连接请求到服务器。客户端的请求会包含要访问的资源的地址(URL)以及一些其他信息。

3.2、服务器响应并发送证书

服务器收到请求后,会发送一个包含其 SSL/TLS 证书的响应。这个证书由一个受信任的证书颁发机构(CA)签发,并包含了服务器的公钥和其他信息。

3.3、客户端验证证书

客户端接收到服务器的证书后,会进行验证:

  • 检查证书是否由受信任的 CA 签发:浏览器会检查证书的颁发机构是否被信任;
  • 验证证书的有效性:检查证书是否过期,是否被吊销;
  • 检查证书是否与服务器主机名匹配:确保证书中的域名与访问的主机名一致。

如果证书验证通过,客户端会继续进行下一步。如果验证失败,客户端会显示警告或拒绝连接。

3.4、密钥交换

在证书验证成功后,客户端和服务器会进行密钥交换,以确定一个对称加密密钥。

这个过程包括:

  • 生成预主密钥:客户端生成一个随机的预主密钥,并用服务器的公钥加密这个密钥;
  • 服务器解密预主密钥:服务器使用自己的私钥解密收到的预主密钥;
  • 生成会话密钥:客户端和服务器使用预主密钥以及其他随机值生成对称加密的会话密钥。
3.5、建立安全连接

一旦对称加密密钥(会话密钥)生成完成,客户端和服务器会使用这个密钥进行加密的数据传输。所有后续的数据传输都使用这个对称加密密钥来保证数据的机密性和完整性。

3.6、数据传输

在建立安全连接后,客户端和服务器之间的数据传输将被加密。数据在传输过程中不会被中间人读取或篡改。HTTPS 协议还包括数据完整性检查,确保数据没有被篡改。

3.7、关闭连接

当数据传输完成后,客户端和服务器会关闭连接,并且可能会销毁加密密钥以保护数据的安全性。


4、Https 优缺点

4.1、HTTPS的优点

尽管 HTTPS 并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但 HTTPS 仍是现行架构下最安全的解决方案,主要有以下几个好处:

  1. 使用 HTTPS 可认证用户和服务器,确保数据发送到正确的客户机和服务器;
  2. HTTPS 是由 SSL+HTTP 构建的可进行加密传输、身份认证的网络协议,要比 HTTP 安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
  3. HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
  4. 谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等 HTTP 网站,采用 HTTPS 加密的网站在搜索结果中的排名将会更高”。
4.2、HTTPS 的缺点
  1. HTTPS 握手阶段比较费时,会使页面的加载时间延长近 50%;
  2. HTTPS 连接缓存不如 HTTP 高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;
  3. SSL 证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
  4. SSL 证书通常需要绑定 IP,不能在同一 IP 上绑定多个域名,IPv4 资源不可能支撑这个消耗。
  5. HTTPS 的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL 证书的信用链体系并不安全,特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1485934.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

剧本杀小程序搭建,互联网下的游戏新体验,实现新增收!

近几年,桌游备受大众青睐,剧本杀行业更是瞬间曝火!拥有强大社交体验与沉浸式游戏体验的剧本杀成为了众多年轻人的新宠,无论是外出游玩还是好友聚会,剧本杀游戏都成为了首选方式。 随着互联网的发展,线上小…

基于DPUSmartNic的云原生SDN解决方案

1. 方案背景与挑战 随着云计算,大数据和人工智能等技术的蓬勃发展,数据中心面临着前所未有的数据洪流和计算压力,这对SDN提出了更高的性能和效率要求。自云原生概念被提出以来,Kubernetes为云原生应用的落地提供了一个轻量级&am…

视频汇聚平台EasyCVR启动出现报错“cannot open shared object file”的原因排查与解决

安防视频监控EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。EasyCVR平台支持多种视频流的外部分发,如RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、fmp4等&#xf…

物联网mqtt网关搭建背后的技术原理

前言 物联网是现在比较热门的软件领域,众多物联网厂商都有自己的物联网平台,而物联网平台其中一个核心的模块就是Mqtt网关。这篇文章的目的是手把手教大家写书写一个mqtt网关,后端存储支持Kafka/Pulsar,支持mqtt 连接、断链、发送…

【Java】中的List集合

目录 一、什么是List集合二、List的常用方法List的初始化元素操作1.添加元素2.删除元素3.修改元素4.查询元素 三、List集合的遍历1.for循环遍历2.增强for循环3.迭代器遍历 一、什么是List集合 List集合是最常用的一种数据结构之一。它具有动态扩容、元素添加、删除和查询等基础…

MongoDB教程(十八):MongoDB MapReduce

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、MapRed…

免费【2024】springboot 趵突泉景区的智慧导游小程序

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

[数据集][目标检测]躺坐站识别检测数据集VOC+YOLO格式9488张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):9488 标注数量(xml文件个数):9488 标注数量(txt文件个数):9488 标注…

bug诞生记——动态库加载错乱导致程序执行异常

大纲 背景问题发生问题猜测和分析过程是不是编译了本工程中的其他代码是不是有缓存是不是编译了非本工程的文件是不是调用了其他可执行文件查看CMakefiles分析源码检查正在运行程序的动态库 解决方案 这个案例发生在我研究ROS 2的测试Demo时发生的。 整体现象是:修改…

站在资本投资领域如何看待分布式光纤传感行业?

近年来,资本投资领域对于分布式光纤传感行业并不十分敏感。这主要是由于分布式光纤传感技术是一个专业且小众的领域,其生命周期相对较长,缺乏爆发性,与消费品或商业模式创新产业有所不同。此外,国内的投资环境也是影响…

Jmeter之count函数

counter函数 1、功能解释 count函数--计数器,每调用这个函数一次,它就会自动加1。它有两个参数,第一个参数是布尔型的,只能设置成 “TRUE”或者“FALSE”,如果是TRUE,那么每个用户有自己的计数器&#xf…

数据结构(5.3_1)——二叉树的先中后序遍历

先序遍历——根左右——前缀表达式 中序遍历——左根右——中缀表达式 后序遍历——左右根——后缀表达式 二叉树的遍历(手算) 先序遍历代码 struct ElemType {int value; }; //二叉树的结点(链式存储) typedef struct BiTNode {ElemType data;//数据域struct BiTNode *lchil…

高频面试题基本总结回顾5(含笔试高频算法整理)

干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…

ArcGIS Pro不能编辑ArcGIS10.X的注记的解决办法

​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 一、问题 我们利用ArcGIS Pro编辑ArcGIS10.X系列软件生成的注记要素类的时候,会提示不…

大数据学习之sparkstreaming

SparkStreaming idea中初步实现 Spark core: SparkContext 核心数据结构:RDD Spark sql: SparkSession 核心数据结构:DataFrame Spark streaming: StreamingContext 核心数据结构:DStream(底层封装了RDD),遍历出其中的RDD即可进行…

Inconsistent Query Results Based on Output Fields Selection in Milvus Dashboard

题意:在Milvus仪表盘中基于输出字段选择的不一致查询结果 问题背景: Im experiencing an issue with the Milvus dashboard where the search results change based on the selected output fields. Im working on a RAG project using text data conv…

智慧隧道可视化:安全与效率的智能保障

运用图扑可视化技术,实时监测隧道内的环境和交通状况,提升维保效率和应急响应能力,确保隧道运营的安全和畅通。

系统架构设计师教程 第4章 信息安全技术基础知识-4.1 信息安全基础知识-解读

系统架构设计师教程 第4章 信息安全技术基础知识-4.1 信息安全基础知识 4.1.1 信息安全的概念4.1.1.1 信息安全的范围4.1.1.1.1 设备安全4.1.1.1.2 数据安全4.1.1.1.3 内容安全4.1.1.1.4 行为安全 4.1.2 信息存储安全4.1.2.1 信息使用的安全4.1.2.1.1 用户的标识与验证4.1.2.1.…

Redis+Lua脚本+AOP+反射+自定义注解,打造我司内部基础架构限流组件

定义注解 Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD}) Documented public interface RedisLimitAnnotation {/*** 资源的key,唯一* 作用:不同的接口,不同的流量控制*/String key() default "";/*** 最多的访问限制次数…

JAVA毕业设计152—基于Java+Springboot+vue+小程序的个人健康管理系统小程序(源代码+数据库+15000字论文)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue小程序的个人健康管理系统小程序(源代码数据库15000字论文)152 一、系统介绍 本项目前后端分离带小程序(可以改为ssm版本),分为用户、管理员两种…