【计算机网络】https的工作原理以及和http的区别

目录

前言

1. HTTP协议存在的问题

2. 什么是HTTPS协议?

3. HTTP和HTTPS有哪些区别?

4. HTTPS的工作原理

 加密方式


前言

在日常的Web项目练习中,我们会发现老师会让我们在打开服务器之后使用 http://localhost/...进行项目效果测试和预览,偶尔会有同学尝试使用 https://localhost/... 进行服务请求,但出现“无法访问”的情况,这是为什么呢?当时也没有学习“《计算机网络》”,对此一无所知,只知道https是通信安全的协议;现今,我们将对 http https 进行学习理解。

本栏其他文章:什么是http?


1. HTTP协议存在的问题

  • 使用明文进行通信,内容可能会被窃听,比如抓包。
  • 不验证通信方的身份,通信方的身份有可能遭遇伪装,比如钓鱼网站。
  • 无法证明报文的完整性,报文有可能遭篡改,比如强制在线广告植入。

2. 什么是HTTPS协议?

HTTPS 全称是超文本传输安全协议(Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通信协议。

  • HTTPS 使用 HTTPS 隧道进行通信,让 HTTP 先和 SSLSecure Sockets Layer)通信,由 SSL 负载在服务器与浏览器之间,使用非对称加密算法(RSA)完成一个随机密钥的交换,在随后的数据传输当中,使用该随机密钥进行数据内容的对称式加密(AES)。
  • 通过使用 SSL,HTTPS 具有 加密(防窃听)、认证(防伪装)和完整性保护(防篡改)等功能特定。

3. HTTP和HTTPS有哪些区别?

  1. HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 解决了 HTTP 不安全的缺陷,在 TCP HTTP 网络层之间加入了 SSL 安全协议,使得报文能够加密传输。
  2. HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTP 在 TCP 三次握手 之后,还需进行 SSL 的握手过程,才可进行加密报文传输。
  3. HTTP 的端口号是 80 ,HTTPS 的端口号是 443
  4. HTTPS 协议需要想证书权威机构申请数字证书,来保证服务器的身份是可信的。

4. HTTPS的工作原理

        1.浏览器发起连接请求:浏览器向服务器发送连接请求,请求建立 HTTPS 连接。

        2.服务器返回数字证书:服务器收到浏览器的连接请求后,选择浏览器支持的加密 hash 算法,返回自己的数字证书(公钥、证书颁发机构等信息)给浏览器。

        3.浏览器验证证书(非对称式加密算法 | 公钥加密):浏览器收到服务器返回的数字证书后,会验证证书的合法性。

        注:主要用于安全地传输会话密钥,保证会话密钥只有服务器能够获取,同时也保证了数据传输的机密性。

        4.浏览器生成会话密钥:如果证书验证通过,浏览器会生成一个随机的会话密钥 X,并使用服务器的公钥进行加密,然后将加密的会话密钥发送给服务器。

        5.服务器解密会话密钥(对称式加密算法):服务器收到之后,使用私钥解密,得到随机密钥 X ,然后使用随机密钥 X 对网页内容进行加密,返回给浏览器。

        注:服务器使用私钥解密浏览器发送的会话密钥之后,浏览器与服务器之间会使用这个随机密钥 X 进行对称式加密通信,对称式加密算法的加密和解密速度更快,适合大量数据的加密传输。

        6.浏览器解密会话密钥:浏览器使用随机密钥 X 和之前约定的加密算法进行解密,得到最终的网页内容。

HTTPS工作原理

 加密方式:

  • 对称式加密(Symmetric-Key Encryption):加密和解密使用同一把密钥的加密算法。
    • 优点:运算速度快。
    • 缺点:无法安全地将密钥传输给通信方。
    • 常见算法:AESDES
  • 非对称式加密(Public-Key Encryption):公开密钥加密算法,加密和解密使用不同的密钥。公开密钥所有人都可以获得,通信发送方获得接收方的公开密钥之后,就可以使用公开密钥进行加密,接收方接受到通信内容后使用私有密钥解密。
    • 优点:可以更安全地将公开密钥传输给通信发送方;
    • 缺点:运算速度慢。
    • 常见算法:RSA

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

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

相关文章

OpenCV C++ 图像处理实战 ——《物体数量计数与尺寸测量》

OpenCV C++ 图像处理实战 ——《物体数量计数与尺寸测量》 一、结果演示二、多尺度自适应Gamma矫正的低照度图像增强三、轮廓计算与尺寸测量3.1 图像二值化3.2 轮廓提取3.3 物体计数与尺寸测量四、源码测试图像下载总结一、结果演示 二、多尺度自

1.实用Qt:解决绘制圆角边框时,圆角锯齿问题

目录 问题描述 解决方案 方案1: 方案2: 结果示意图 问题描述 做UI的时候,我们很多时候需要给绘制一个圆角边框,初识Qt绘制的童鞋,可能绘制出来的圆角边框很是锯齿,而且粗细不均匀,如下图&…

开环端到端自动驾驶: 到底行不行

开环端到端自动驾驶: 到底行不行 附赠全面专业的自动驾驶学习资料:直达链接 TLDR: 别在nuScenes上做开环端到端自动驾驶刷点了。 论文: https://arxiv.org/pdf/2312.03031.pdf github: https://github.com/NVlabs/BEV-Planner 前言 Uni…

idea中database的一些用法

1、查看表结构 方法1,右键,选这个 方法2 双击表后,看到数据,点DDL 方法3 写SQL时,把鼠标放在表名上,可以快速查看表结构 2、表生成对应的实体类 表中右键,选择这2个,选择生成的路…

物联网 3.15日 | 2024年中国七大 IoT 物联网云平台价格对比

随着 中国电信天翼 CTWing 物联网平台正式开始收费,国内物联网平台云产品发展进入成熟期,越来越多企业选择云厂商提供的物联网PaaS服务,以降低运营成本,缩短业务上线周期,释放运维的人力,按需付费动态扩容。…

2024 第一届VCTF 纳新赛 Web方向 题解WP

hackjs 题目描述:A baby oldjs, just warm up. 附件给源码 const express require(express) const fs require(fs) var bodyParser require(body-parser); const app express() app.use(bodyParser.urlencoded({extended: true })); app.use(bodyParser.json…

安装python、pycharm,打好基础,准备飞起

python安装使用 安装python安装包 以下为自定义安装python安装包,无特殊要求可直接进行安装。 勾选Add Python 3.6 to PATH, 然后点击 Customize installation,进行自定义安装。 所有的都勾上,然后点击Next。 可选择自己需要…

【算法杂货铺】模拟

目录 🌈前言🌈 📁1576. 替换所有的问号​编辑 📁 495. 提莫攻击 📁 6. Z 字形变换 📁38. 外观数列 📁1419. 数青蛙 📁 总结 🌈前言🌈 欢迎观看本期【算…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Stack)

堆叠容器,子组件按照顺序依次入栈,后一个子组件覆盖前一个子组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 可以包含子组件。 接口 Stack(value?: { ali…

「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架

文章目录 关于 | About技术文档 | Document开源项目 | Project 案例 | Demo项目结构 | Structure主程序配置集成 | Settings引入框架依赖 | Framework在配置文件加入配置 | YamlSpringBoot启动类改引导类 | Change 插件配置集成 | Settings引入依赖 | XML定义插件引导类 | Clas…

计算机服务器中了360后缀勒索病毒怎么办,勒索病毒解密工具与流程

对于众多的企业来说,利用网络开展各项工作业务是必不可少的环节,网络为企业的生产运营提供了有利条件,但网络是一把双刃剑,在为人们提供便利的同时,也为企业的数据安全带来严重威胁。近期,云天数据恢复中心…

Linux 基础-查看和设置环境变量

一,查看环境变量 在 Linux中,环境变量是一个很重要的概念。环境变量可以由系统、用户、Shell 以及其他程序来设定,其是保存在变量 PATH 中。环境变量是一个可以被赋值的字符串,赋值范围包括数字、文本、文件名、设备以及其他类型…

Linux系统——Session ID(负载均衡如何保持会话)

目录 一、实验环境搭建 二、部署Nginx代理服务器配置 三、部署后端真是服务器Tomcat配置 四、配置Tomcat的Session ID会话保持 五、测试 此次实验是Tomcat后端服务器如何做Session ID会话保持 一、实验环境搭建 [rootlocalhost ~]#systemctl stop firewalld [rootlocalho…

实战:django项目环境搭建(pycharm,virtualBox)

django项目环境搭建 一.创建虚拟环境二.创建PyCharm远程连接 一.创建虚拟环境 需要用到的软件:PyCharm,VirtualBox虚拟机。 1.打开虚拟机终端,创建新的虚拟环境 Book。 2.在虚拟环境中创建新的文件夹 library,cd命令进入该文件…

MIT线性代数-方程组的几何解释

文章目录 1. 二维空间1.1 行方向1.2 列方向 2. 三维空间2.1 行方向2.2 列方向 假设有一个方程组 A X B AXB AXB表示如下 2 x − y 0 (1) 2x-y0\tag{1} 2x−y0(1) − x 2 y 3 (2) -x2y3\tag{2} −x2y3(2) 矩阵表示如下: [ 2 − 1 − 1 2 ] [ x y ] [ 0 3 ] (3)…

数据分析-Pandas的直接用Matplotlib绘图

数据分析-Pandas的直接用Matplotlib绘图 数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律? 数据表…

Linux第80步_使用“信号量”实现“互斥访问”共享资源

1、创建MySemaphoreLED目录 输入“cd /home/zgq/linux/Linux_Drivers/回车” 切换到“/home/zgq/linux/Linux_Drivers/”目录 输入“mkdir MySemaphoreLED回车”,创建“MySemaphoreLED”目录 输入“ls回车”查看“/home/zgq/linux/Linux_Drivers/”目录下的文件…

基于opencv的图像处理系统的设计与实现

概要 随着计算机技术的飞速发展,图像技术在各领域的研究和应用日渐深入和广泛。opencv是近年来推出的开源、免费的计算机视觉库,利用其所包含的函数可以很方便地实现数字图像处理。本文旨在对opencv进行一个快速全面简介,通过介绍图像处理的相关函数,使读…

Git学习记录

目录 Git Git介绍 版本控制 版本控制工具 集中式版本控制工具 分布式版本控制工具 Git工作机制 ​编辑 Git和代码托管中心 Git安装 Git常用命令 设置用户签名 初始化本地库 查看本地库状态 添加到暂存区 提交到本地库 修改文件 历史版本 查看历史版本 版本…

python的opencv最最基础初学

localhost中详解OpenCV的函数imread()和函数imshow(),并利用它们实现对图像的读取和显示_opencv imshow-CSDN博客 其实以下均为numpy 显示一张图片 import cv2 ####opencv读取的格式是BGR import matplotlib.pyplot as plt import numpy as np %matplotlib inline imgcv2.…