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.mzph.cn/bicheng/50622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

snkemake入门

一、背景介绍 snakemake是一种用于自动化流程的开源工具,是一款基于python3的软件。在生物信息学、高通量测序数据分析、大规模数据处理等领域非常流行。 snakemake的官网:Snakemake | Snakemake 8.16.0 documentationhttps://snakemake.readthedocs.i…

自监督学习概述(Self-Supervised Learning,SSL)

自监督学习(Self-Supervised Learning,SSL)是一种机器学习方法,旨在利用未标记数据进行训练。这种方法通过从数据本身生成伪标签,来创建监督信号,使得模型能够学习有效的数据表示。自监督学习在深度学习领域…

C++ | Leetcode C++题解之第283题移动零

题目&#xff1a; 题解&#xff1a; class Solution { public:void moveZeroes(vector<int>& nums) {int n nums.size(), left 0, right 0;while (right < n) {if (nums[right]) {swap(nums[left], nums[right]);left;}right;}} };

MathType 7.8中文直装版2024年最新图文安装破解教程

MathType公式编辑器 v7.8中文破解版是一款适用于Windows和Macintosh的便捷交互式公式编辑器&#xff0c;可帮助您进行文字处理、网页、桌面设计、演示文稿制作、学习TeX、LaTeX和MathML文档创建。 MathType 7.8这个工具允许用户创建、修改公式和插入多个文档。有了这个软件&…

​CSS技巧专栏:一日一例 13 -纯CSS实现晃晃悠悠背景不停滚动的按钮特效​

CSS技巧专栏:一日一例 13 -纯CSS实现晃晃悠悠背景不停滚动的按钮特效​ 大家好,本篇文章给大家带来一个可爱的按钮,像个小宠物等待你抚摸和奖励,不知道它会不会引起你的关注呢?页面上这样的一个按钮,会不会让你忍不住把鼠标移动过去点一下呢? 本例图片 案例分析 这个…

机械学习—零基础学习日志(高数12——反三角函数)

零基础为了学人工智能&#xff0c;真的开始复习高数 反三角函数很困难&#xff0c;但是当建立了逻辑链条&#xff0c;还是能快速理解的。这个办法就是笛卡尔坐标系。 三角函数与反三角函数的个人理解 sinx与cosx&#xff0c;tanx&#xff0c;secx&#xff0c;其实都可以放在…

白嫖游戏指南,Epic喜加一:《暗影火炬城》

前言 Epic喜加一&#xff1a;《暗影火炬城》《暗影火炬城》简介&#xff1a; 前言 接下来有时间会分享一些游戏相关可以白嫖的资源&#xff0c;包括游戏本体、游戏素材资源等等。 有需要的小伙伴可以关注这个专栏&#xff0c;不定期更新哦&#xff01; 专栏&#xff1a;白嫖…

数据库系统概述

文章目录 数据库基本概念内容重点数据库定义计算机三大主要应用领域 数据管理基础数据与信息数据处理与数据管理 数据库技术的产生、发展数据库系统的组成优势组成部分 数据模型概念类型 数据库三级模式和二级映射目的组成部分 数据库系统设计步骤小结 数据库基本概念 内容 信…

羊大师:夏夜贪凉,但为啥肚子还要‘保暖计划’?

在这个夏夜&#xff0c;当空调与风扇齐飞&#xff0c;冰镇西瓜与凉面共舞之时&#xff0c;你是否也曾有过这样的疑惑&#xff1a;明明热得汗流浃背&#xff0c;为啥老一辈总念叨着“睡觉再热也要给肚子盖被子”&#xff1f;这背后&#xff0c;藏着的可不仅仅是老一辈的固执&…

链路聚合加单臂路由

一、实验目的及拓扑 实验目的&#xff1a;在路由器及交换机之间建立链接聚合&#xff0c;交换机接入两台主机并通过路由器子接口自动分配IP地址&#xff0c;通过单臂路由实现两台主机互联 二、基本配置 1、交换机配置 [S1]vlan batch 10 20 [S1-Eth-Trunk1]dis th # interf…

小型内衣裤洗衣机哪个牌子好?五款万分翘楚机型任你挑选!

在日常生活中&#xff0c;内衣洗衣机已成为现代家庭必备的重要家电之一。选择一款耐用、质量优秀的内衣洗衣机&#xff0c;不仅可以减少洗衣负担&#xff0c;还能提供高效的洗涤效果。然而&#xff0c;市场上众多内衣洗衣机品牌琳琅满目&#xff0c;让我们往往难以选择。那么&a…

AI复活,让老照片动起来【数字永生】

✅ 适宜人群&#xff1a;关注 AI 复活缅怀逝者或以此变现的人群 内容出品人&#xff1a;领航猿1号 更多AI知识分享&#xff1a;https://www.yuque.com/lhyyh/ai/readme?singleDoc 1、前言 AI“复活”实质上是利用人工智能技术&#xff0c;通过对人物已有“形象、声音、语言、…

用Python实现Cmpp协议的教程

引言&协议概述 &#xff08;CMPP&#xff09;是中国移动为实现短信业务而制定的一种通信协议&#xff0c;用于在客户端&#xff08;SP&#xff0c;Service Provider&#xff09;和中国移动短信网关之间传输短消息&#xff0c;有时也叫做移动梦网短信业务。CMPP3.0是该协议…

嵌入式Linux学习: 设备树实验

设备树&#xff08;DeviceTree&#xff09;是一种硬件描述机制&#xff0c;用于在嵌入式系统和操作系统中描述硬件设备的特性、连接关系和配置信息。它提供了一种与平台无关的方式来描述硬件&#xff0c;使得内核与硬件之间的耦合度降低&#xff0c;提高了系统的可移植性和可维…

立创梁山派--移植开源的SFUD和FATFS实现SPI-FLASH文件系统

本文主要是在sfud的基础上进行fatfs文件系统的移植&#xff0c;并不对sfud的移植再进行过多的讲解了哦&#xff0c;所以如果想了解sfud的移植过程&#xff0c;请参考我的另外一篇文章&#xff1a;传送门 正文开始咯 首先我们需要先准备资料准备好&#xff0c;这里对于fatfs的…

【ESP32 IDF 软件模拟SPI驱动 W25Q64存储与读取数组】

目录 SPISPI介绍SPI时序代码编写&#xff08;spi&w25q64&#xff09; 代码调试 SPI SPI介绍 SPI&#xff08;Serial Peripheral Interface&#xff0c;串行外围设备接口&#xff09;是一种高速、全双工、同步的串行通信总线&#xff0c;常用于微控制器与各种外围设备&…

苍穹外卖浏览器前端界面修改

背景&#xff1a; 客户原始方案是期望做一个Spring Boot Vue的饿了么系统&#xff0c;但时间上太仓促&#xff0c;所以建议选择开源的苍穹外码目作为作业提交。 客户接受了建议的方案后&#xff0c;期望对前端页面做一些个性化的定制修改。 过程&#xff1a; 苍穹外卖简单介…

【HTML+CSS】HTML超链接:构建网页导航的基石

目录 什么是HTML超链接&#xff1f; 基本语法 示例 链接到另一个网页 链接到同一页面内的不同部分 常用属性 在Web开发的广阔世界中&#xff0c;HTML&#xff08;HyperText Markup Language&#xff09;作为网页内容的标准标记语言&#xff0c;扮演着至关重要的角色。而在…

重拾CSS,前端样式精读-函数(颜色,计算,图像和图形)

前言 本文收录于CSS系列文章中&#xff0c;欢迎阅读指正 在计算机编程中&#xff0c;函数有着重要的作用和意义&#xff0c;它可以实现封装&#xff0c;复用&#xff0c;模块化&#xff0c;参数等功能效果&#xff0c;在如何在CSS中写变量&#xff1f;一文带你了解前端样式利…

操作系统杂项(十)

目录 一、简述socket中select、epoll的使用场景和区别 1、使用场景 2、区别 二、epoll水平触发和边缘触发的区别 三、简述Reactor和Proactor模式 1、Reactor 2、Proactor 3、区别 四、简述同步和异步的区别&#xff0c;阻塞和非阻塞的区别 1、同步与异步 2、阻塞与非…