【计算机网络】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.hqwc.cn/news/544441.html

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

相关文章

Tuxera NTFS 2023安装使用教程 Tuxera NTFS破解版 Tuxera NTFS for Mac优惠

对于必须在Windows电脑和Mac电脑之间来回切换的Mac朋友来说,跨平台不兼容一直是一个巨大的障碍,尤其是当我们需要使用NTFS格式的硬盘在Windows和macOS之间共享文件时。因为Mac默认不支持写入NTFS磁盘。 为了解决这一问题,很多朋友会选择很便捷…

QML 布局管理器之ColumnLayout

一.ColumnLayout讲解 QML中的ColumnLayout是一种布局元素,用于在垂直列中排列其子元素。它的主要使用下列附加属性: Layout.minimumWidth Layout.minimumHeight Layout.preferredWidth Layout.preferredHeight Layout.maximumWidth Layout.maximumHeight Layout.fil…

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)…

Mr-Robot1靶场练习靶场推荐小白入门练习靶场渗透靶场bp爆破wordpress

下载链接: Mr-Robot: 1 ~ VulnHub 安装: 打开vxbox,菜单栏----管理----导入虚拟电脑 选择下载完的ova文件,并修改想要保存的位置(也可以保持默认位置) 导入完成后可以根据自己的情况去配置网络链接方式 完成…

HttpServer整合模块设计与实现(http模块五)

目录 类功能 类定义 类实现 编译测试 源码路标 类功能 类定义 // HttpServer模块功能设计 class HttpServer { private:using Handler std::function<void(const HttpRequest &, HttpResponse &)>;std::unordered_map<std::string, Handler> _get_r…

微信小程序开发学习笔记——3.11完成form评论案例的实现逻辑

>>跟着b站up主“咸虾米_”学习微信小程序开发中&#xff0c;把学习记录存到这方便后续查找。 课程连接&#xff1a;https://www.bilibili.com/video/BV19G4y1K74d?p25&vd_source9b149469177ab5fdc47515e14cf3cf74 一、javascript参考手册——splice https://www.…

2024年新算法:基于鹦鹉优化器PO的城市三维无人机路径规划(复杂地形三维航迹路径规划)

摘要&#xff1a;本文提出了一种利用鹦鹉优化器&#xff08;Parrot optimizer&#xff0c;PO&#xff09;来解决城市环境下无人机三维路径规划问题的方法。这种方法将复杂的无人机航迹规划任务转化为一个优化问题&#xff0c;然后运用鹦鹉优化器PO来解决这个优化问题。鹦鹉优化…

HCIP—BGP邻居关系建立实验

BGP的邻居称为&#xff1a;IBGP对等体 EBGP对等体 1.EBGP对等体关系&#xff1a; 位于 不同自治系统 的BGP路由器之间的BGP对等体关系 EBGP对等体一般使用 直连建立 对等体关系&#xff0c;EBGP邻居之间的报文 TTL中值设置为1 两台路由器之间建立EBGP对等体关系&#xff0…

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

Golang实现Redis分布式锁&#xff08;Lua脚本可重入自动续期&#xff09; 1 概念 应用场景 Golang自带的Lock锁单机版OK&#xff08;存储在程序的内存中&#xff09;&#xff0c;分布式不行 分布式锁&#xff1a; 简单版&#xff1a;redis setnx》加锁设置过期时间需要保证原…

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

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

知名Web3投资基金a16z合伙人Jane Lippencott确认出席Hack.Summit() 2024区块链开发者大会

在区块链技术的风起云涌和Web3生态的蓬勃发展中&#xff0c;知名a16z Crypto的合伙人Jane Lippencott已确认出席即将于2024年4月9日至10日在香港数码港举行的Hack.Summit() 2024区块链开发者大会。作为亚洲首次举办的Hack.Summit()&#xff0c;此次大会将为全球区块链开发者及业…

Task-balanced distillation for object detection用于

Task-balanced distillation for object detection用于目标检测的任务平衡蒸馏 摘要 主流的目标检测器通常由分类和回归两个子任务组成&#xff0c;由两个并行头部实现。这种经典的设计范式不可避免的导致分类得分和定位质量&#xff08;IOU&#xff09;之间的空间分布不一致…