https和http的区别,及HTTPS的工作流程

HTTP(HyperText Transfer Protocol)和HTTPS(HyperText Transfer Protocol Secure)都是超文本传输协议,但它们之间的关键区别在于安全性。

  1. 安全性

    • HTTP:数据以明文传输,没有加密,容易被第三方截获和篡改。
    • HTTPS:在HTTP的基础上加入了SSL/TLS加密层,数据在传输过程中是加密的,可以有效保护用户隐私。
  2. 端口

    • HTTP:使用的是80端口。
    • HTTPS:使用的是443端口。
  3. 证书

    • HTTP:不需要证书。
    • HTTPS:需要SSL/TLS证书来验证服务器的身份,确保用户连接到的是可信的服务器。
  4. 速度

    • HTTP:由于没有加密和解密过程,相对速度更快。
    • HTTPS:需要加密和解密,速度相对慢一些,但现代浏览器和服务器已优化了HTTPS性能,速度差异很小。
  5. SEO优先级

    • HTTPS:被搜索引擎(如Google)优先考虑,更有利于SEO优化。

总之,HTTPS在传输安全性方面优于HTTP,更适用于需要保护用户数据的场景,例如在线支付、登录系统等。

htttps的原理

HTTPS(HyperText Transfer Protocol Secure)是一种在HTTP协议基础上,通过SSL/TLS加密来保证通信安全的协议。它通过加密、数据完整性验证和身份验证,来保护用户与服务器之间的数据传输。以下是HTTPS的工作原理和详细流程:

1. 加密协议:SSL/TLS

  • HTTPS采用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议进行加密。TLS是SSL的升级版,更安全、更高效,目前大多数网站使用TLS。

2. HTTPS的工作流程

HTTPS的整个工作流程可以分为几个关键步骤:

2.1 客户端与服务器握手
  1. 客户端请求连接:客户端(如浏览器)向服务器发起HTTPS连接请求,并发送一个“Client Hello”消息,其中包含客户端支持的加密算法和TLS版本。

  2. 服务器响应:服务器收到请求后,回复“Server Hello”消息,包含服务器选择的加密算法、TLS版本以及服务器的SSL证书(包含公钥)。

2.2 验证服务器身份
  1. 验证证书:客户端收到服务器证书后,通过证书颁发机构(CA)验证该证书的合法性。如果证书无误,继续进行下一步;如果证书有问题,浏览器会发出警告。

  2. 检查域名:客户端还会验证证书中的域名是否与服务器的域名匹配,以确保连接的是合法的服务器。

2.3 生成会话密钥
  1. 生成会话密钥:客户端生成一个“会话密钥”,并用服务器的公钥对该会话密钥加密后发送给服务器。

  2. 服务器解密会话密钥:服务器用其私钥解密出会话密钥。此时,客户端和服务器都拥有相同的会话密钥,用于后续的数据传输。

2.4 建立加密通信
  • 加密传输:通过会话密钥,客户端和服务器之间的通信内容都将以对称加密的方式进行传输,加密算法由双方协商确定。
  • 数据完整性验证:每次发送数据时,会添加一个消息验证代码(Message Authentication Code, MAC),用于验证数据的完整性,防止数据在传输过程中被篡改。

3. HTTPS的核心机制

HTTPS的核心机制包括身份验证加密数据完整性

  • 身份验证:通过SSL/TLS证书,客户端可以确认服务器的身份,确保用户访问的是真实的服务器,而不是伪造的钓鱼网站。
  • 加密:利用对称加密和非对称加密的组合来确保传输的数据是安全的。
    • 对称加密(如AES)用于加密实际数据,因为对称加密速度较快。
    • 非对称加密(如RSA)用于传输会话密钥,因为非对称加密速度慢但安全性高。
  • 数据完整性:每次传输的数据都会附加MAC,以防数据被篡改,确保数据完整性。

4. HTTPS握手中的关键概念

  • 会话密钥(Session Key):由客户端生成的用于会话期间的数据加密的密钥,确保通信效率和安全性。
  • 数字证书:由CA签发,证书包含服务器的公钥、域名和签名信息,用来证明服务器的身份。
  • 非对称加密和对称加密的结合:初始握手阶段用非对称加密传递会话密钥,后续数据传输使用对称加密提高效率。

5. HTTPS性能优化

尽管HTTPS增加了一些额外的计算和网络开销,但现代HTTPS协议通过一些技术优化来提升性能:

  • 会话复用:如果客户端和服务器之前已有过TLS连接,可以复用之前的会话参数,减少握手次数。
  • HTTP/2协议:支持多路复用和头部压缩,提升了HTTPS的传输效率。
  • 证书透明度:通过证书透明度机制,浏览器可以快速检验证书的合法性,减少延迟。

6. HTTPS的优缺点

  • 优点

    • 提供加密保护、防止数据被窃听;
    • 验证服务器身份、防止用户访问虚假网站;
    • 增强SEO排名,有助于网站可信度。
  • 缺点

    • 需要SSL/TLS证书,成本较高;
    • 增加握手过程和加解密开销,稍微影响传输速度。

总结

HTTPS通过SSL/TLS协议实现加密通信,利用非对称加密来验证身份,生成会话密钥,通过对称加密确保数据传输的安全和完整性。握手流程虽然复杂,但确保了用户数据的机密性和完整性,在现代网络安全中是不可或缺的部分。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python · Pytorch】人工神经网络 ANN(上)

【Python Pytorch】人工神经网络 ANN(上) 0. 生物神经网络1. 人工神经网络定义2. 人工神经网络结构2.1 感知机2.2 多层感知机2.3 全连接神经网络2.4 深度神经网络 2. 训练流程※ 数据预处理 (Data Preprocessing) 3. 常见激活函数3.1 Sigmoid / Logisti…

基本查询【MySQL】

文章目录 基本查询插入时是否更新替换查询指定列查询查询字段为表达式为查询结果指定别名结果去重where条件NULL 的查询 结果排序筛选分页结果UpdateDelete截断表聚合函数分组(group by)having && where 基本查询 建表 mysql> create table Student (-> id int…

pandas——数据结构

一、series (一)创建series import pandas as pd#1.使用列表或数组创建Series # 使用列表创建Series,索引默认从0开始 s1 pd.Series([1, 2, 3]) print(s1) # 使用列表和自定义索引创建Series s2 pd.Series([1, 2, 3], index[a, b, c]) pr…

算法妙妙屋-------1.递归的深邃回响:C++ 算法世界的优雅之旅

前言: 递归是一种在算法中广泛应用的思想,其主体思想是通过将复杂的问题分解为更简单的子问题来求解。具体而言,递归通常包括以下几个要素: 基本情况(Base Case):每个递归算法必须有一个或多个…

禾川HCQ1控制器程序编译报错如何解决

1、第一次打开用户程序 2、提示库未安装 3、安装库文件 4、脉冲轴库未安装 5、没有错误 去禾川自动化官网,把可以安装的包和库都安装下,程序编译就没有错误了。 6、下载相关包文件

HarmonyOS:@Watch装饰器:状态变量更改通知

Watch应用于对状态变量的监听。如果开发者需要关注某个状态变量的值是否改变,可以使用Watch为状态变量设置回调函数。 说明 从API version 9开始,该装饰器支持在ArkTS卡片中使用。 从API version 11开始,该装饰器支持在元服务中使用。 一、概…

Windows如何查看自己网卡的MAC地址?

本章教程,主要介绍如何在Windows查看自己的网卡mac地址。 一、查询MAC地址方法 打开使用PowerShell,运行以下命令即可查询到自己的网卡MAC地址。 Get-NetAdapter | Select-Object Name, MacAddress二、MAC地址是什么 MAC地址(Media Access Co…

Unknown at rule @tailwindscss(unknownAtRules)

一、前言 整合 tailwindcss 后,发现指令提示警告 Unknown at rule tailwindscss(unknownAtRules),其实是 vscode 无法识别 tailwindscss 指令,不影响使用,但是对于我这种有编程洁癖的人来说,有点膈应。 二、解决方案…

Python 实现深度学习模型预测控制--预测模型构建

链接:深度学习模型预测控制 (如果认为有用,动动小手为我点亮github小星星哦),持续更新中…… 链接:WangXiaoMingo/TensorDL-MPC: DL-MPC(deep learning model predictive control) is a software toolkit…

安宝特案例 | AR技术在院外心脏骤停急救中的革命性应用

00 案例背景 在院外心脏骤停 (OHCA) 的突发救援中,时间与效率直接决定着患者的生命。传统急救模式下,急救人员常通过视频或电话与医院医生进行沟通,以描述患者状况并依照指令行动。然而,这种信息传递方式往往因信息不完整或传递延…

书生大模型第一关Linux基础知识

任务一:完成SSH连接与端口映射并运行hello_world.py 1.SSH及其端口映射 2.在VSCode中安装插件: 3.创建开发机 最后点击创建,然后可能需要等待一段较长的时间,大概需要5分钟左右,如果需要排队则更长时间 然后选择…

openGauss数据库-头歌实验1-5 修改数据库

一、查看表结构与修改表名 (一)任务描述 本关任务:修改表名,并能顺利查询到修改后表的结构。 (二)相关知识 为了完成本关任务,你需要掌握: 1.如何查看表的结构; 2.如…

【机器学习】26. 聚类评估方法

聚类评估方法 1. Unsupervised Measure1.1. Method 1: measure cohesion and separationSilhouette coefficient Method 2:Correlation between two similarity matricesMethod 3:Visual Inspection of similarity matrix 2. Supervised measures3. 决定…

基于stm32单片机的智能循迹小车

功能描述 STM32单片机循迹避障蓝牙控制温度采集烟雾采集火焰探测声光报警按键调节OLED显示 1. STM32单片机为控制核心 2. 通过ds18b20传感器测量环境温度 3. 通过mq-2烟雾传感器测量环境中的烟雾浓度 4. 温度阈值和烟雾浓度阈值可以通过按键进行调节 5. 当温度或者烟雾浓度超过…

【图解版】力扣第70题:爬楼梯

推理出状态表达式 f(5)表示到达第5层,所有可能的方法数。 到达第5层,有可能是从第4层走一步上来,也有可能是从第3层走两步上来。所以我们可以慢慢延伸,画出上面👆🏻的图。 从图中,我们可以看到…

MySQL基础(三)

目录 一. 插入内容insert 1.1 默认插入 1.2 指定某些列插入数据 1.3 一次插入多行 1.4 insert 插入时间 二. 查询数据select(比较复杂) 2.1 全列查询 2.2 指定列查询 2.3 查询字段为表达式 2.4 别名 as 2.5 去重查询 distinct 2.6 排序…

OpenAI 的 Whisper:盛名之下,其实难副?

OpenAI 的 Whisper:盛名之下,其实难副? Whisper 的崛起与承诺 严重缺陷的曝光 风险分析 应对措施 结论 在人工智能的浪潮中,OpenAI 一直以其创新性和强大的技术实力备受瞩目。然而,最近 OpenAI 的语音转写工具 Wh…

在kanzi 3.9.8里使用API创建自定义材质

1. kanzi studio设置 1.1 创建一个纹理贴图,起名Render Target Texture 1.2 创建一个Image节点,使用该贴图 2. 代码设置 2.1 创建一个自定义节点类 class mynode2d : public Node2D { public: virtual void renderOverride(Renderer3D& renderer…

音频中sample rate是什么意思?

‌sample rate‌在数字信号处理中,指的是‌采样频率‌,即每秒钟从连续信号中抽取的样本数量。采样频率越高,信号的还原度越高,但同时也会增加计算负担和存储需求‌。 实际应用场景 在音频处理中,设置合适的采样率可以…

杨辉三角形

大家好,今天给大家分享一下杨辉三角形是如何打印的,首先我们来看看它的原理。 我们先来看结果 1.如果把它看为一个二维数组(包括后面的空格),那么它数字的这边是一个直角三角形,它的第一列和对角线都为1&a…