【计算机网络】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

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

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

相关文章

Android:adb命令

执行adb命令的窗口如下 Mac或Linux系统里的终端窗口; window系统运行输入cmd打开的指令窗口; Android Studio 里控制下面的Terminal窗口 1. 查看已链接的设备和模拟器 adb devices -l 2. 查看Android内核版本号 adb shell getprop ro.build.version.re…

VMware 配置虚拟机网络

之前需要完成的任务 (1)、下载和安装VMware-Workstation-Pro.exe软件,推荐16.0版本 (2)、下载centOS7镜像,可以在阿里云下载。 (3)、VM创建一个虚拟机,并且使用本地已下载…

【四 (5)数据可视化之 Pyecharts常用图表及代码实现 】

目录 文章导航一、介绍[✨ 特性]二、安装Pyecharts三、主题风格四、占比类图表1、饼图2、环形图3、玫瑰图4、玫瑰图-多图5、堆叠条形图6、百分比堆叠条形图 五、比较排序类1、条形图2、雷达图3、词云图4、漏斗图 六、趋势类图表1、折线图2、堆叠折线图3、面积图4、堆叠面积图 七…

智慧城市新篇章:数字孪生的力量与未来

随着信息技术的迅猛发展和数字化浪潮的推进,智慧城市作为现代城市发展的新模式,正在逐步改变我们的生活方式和社会结构。在智慧城市的构建中,数字孪生技术以其独特的优势,为城市的规划、管理、服务等方面带来了革命性的变革。本文…

Ubuntu虚拟机的IP总频繁变化,导致Xshell断开连接

文章目录 一、IP变化的原因二、解决方法:固定IP三、参考文章 一、IP变化的原因 1.DHCP协议 虚拟机系统(Ubuntu、CentOS、UOS等Linux系统)启动后,加入本地局域网网络时,会向本地网络申请租约一个IP地址,租约时长不定。我这里租约时…

Python之进程池、阻塞模式、非阻塞模式、进程间的通信、queue

非阻塞模式 # 当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程 # 但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法. # 初始化Poo1时&…

程序员下班以后做什么副业合适?

我就是一个最普通的网络安全工程师,出道快10年了,不出意外地遭遇到瓶颈期,但是凭技术在各大平台挖漏洞副业,硬是妥妥扛过来了。 因为对于程序员来讲,这是个试错成本很低、事半功倍的选择。编程技能是一种强大生产力&a…

Flutter-底部弹出框(Widget层级)

需求 支持底部弹出对话框。支持手势滑动关闭。支持在widget中嵌入引用。支持底部弹出框弹出后不影响其他操作。支持弹出框中内容固定头部和下面列表时,支持触摸头部并在列表不在头部的时候支持滑动关闭 简述 通过上面的需求可知,就是在界面中可以支持…

行业回暖?这个行业岗位需求飙升6倍!程序员们提前恭喜了!

前言 随着今年史上最长春节假期正式收官,各行各业相继进入开工节奏,就业市场开启持续升温模式。 今年开工首周,人才需求增长明显,求职者活跃度大大增多,就业市场进入了繁忙有序的节奏,呈现出春招市场的勃…

CI/CD实战-git工具使用 1

版本控制系统 本地版本控制系统 集中化的版本控制系统 分布式版本控制系统 git官网文档:https://git-scm.com/book/zh/v2 Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(sta…

查找众数及中位数 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 众数是指一组数据中出现次数量多的那个数,众数可以是多个。 中位数只是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那…

harmonyOS简介及背景

harmonyOS的场景模式18n: 1(入口手机)8(电脑、VR、手环、iPad、智慧屏、)–wifi—n(车载、智能家居等所有)harmonyOS不需要考虑软硬件的差异,是一个兼容N种的超级终端harmonyOS干了两件事: (1&a…

没有经验就开通抖店,你会遇到以下这些问题!2024抖店教程(新版)

我是王路飞。 没有经验的人去做抖店的话,都会遇到哪些问题呢? 大概率逃脱不开这些问题: 店铺的类型怎么选? 店铺的流量从哪来? 没有货源但又担心做无货源模式会被平台判定违规; 怎么才能快速把店铺做…

pytorch 入门基础知识二(Pytorch 02)

一 微积分 1.1 导数和微分 微分就是求导: %matplotlib inline import numpy as np from matplotlib_inline import backend_inline from d2l import torch as d2l def f(x):return 3 * x ** 2 - 4 * x 定义: 然后求 f(x) 在 x 1 时的导数&#xff…

深入理解Ubuntu22:探索Linux操作系统的功能与应用

一、linux (一)、安装 1、电脑可以安装双系统,即在一套硬件上只能同时运行一个操作系统,例:C盘安装win,D盘安装linux。 2、虚拟机 虚拟机需要硬件支持,并需开启VT-x. 如:Virtual…

PLM系统实施的六大难点及其解决方法

实施PLM系统是企业实现产品全生命周期管理的重要举措,但在实施过程中往往会面临一些难点。本文将探讨实施PLM系统的主要难点及其解决方法。 首先,数据迁移和整合是实施PLM系统的一个关键挑战。企业可能拥有大量的现有数据,包括设计文件、工艺…

幼儿教育管理系统|基于jsp 技术+ Mysql+Java的幼儿教育管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

HANA VIEW 用 ABAP 创建CDS VIEW,在生成ODATA

这里我们做ADT来创建 场景介绍:把hana中的一个底表,创建成ABAP的 CDS VIEW ,在把CDS VIEW 生成 OData 服务。 一、创建CDS Table Function 红框内根据自身情况填写 选择 Define Table Function with Parameters 创建 Data Definition 完整代码,定义 结构 , 也可以定义参…

力扣Lc18--- 168. Excel表列名称(java版)-2024年3月19日

1.题目描述 2.知识点 因为是输入字符 然后显示数字。 就类似2进制10代表2&#xff0c;110代表4&#xff0c;用某进制次幂的方式返回最后的数字结果。 3.代码实现 class Solution {public int titleToNumber(String columnTitle) {int sum0;for(int i0;i<columnTitle.len…

python网络爬虫实战教学——urllib的使用(1)

文章目录 专栏导读1、前言2、urllib的使用3、发送请求3.1 urlopen3.2 request 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN 数据分析领域优质创作者&#xff0c;专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》&#xff0c;本专栏针对…