计算机网络 - http协议 与 https协议(2)

news/2024/7/12 3:43:36 标签: http, 计算机网络, https, java, 后端
http://www.w3.org/2000/svg" style="display: none;">

前言

本篇介绍了构造http请求的的五种方式,简单的使用postman构造http请求,进一步了解https, 学习https的加密过程,了解对称密钥与非对称密钥对于加密是如何进行的,如有错误,请在评论区指正,让我们一起交流,共同进步!


文章目录

    • 前言
    • 1. 构造http请求的方式
    • 2. https - 在http上加密
      • 2.1 ***为什么会有https?***
      • 2.2 加密方式
      • 2.3 https加密 基本过程
        • 1)使用对称密钥 key 加密数据
        • 2)引入 非对称密钥
        • 3)中间人攻击
        • 4)引入证书
    • 总结

本文开始

http_16">1. 构造http请求的方式

1) 直接在浏览器中的地址栏中输入一个 url, 就会构造一个get请求;
2)在html中一些特殊的标签,也会触发 get 请求;
例如:① link ② img中的src属性 ③ a ④ script 等等
3)html中 form 表单可触发 get 和 post请求

https://img-blog.csdnimg.cn/fba5791502ad410b9907463bd3b9aacb.png" alt="在这里插入图片描述" />
https://img-blog.csdnimg.cn/f1c656c0f87f4e5484cccaa30a0b8d18.png" alt="在这里插入图片描述" />
【注】form 表单只支持 get 与 post

4)ajax 构造http 请求 - 通过 jquery 中的api构造
【注】$ 是特殊的全局变量,可用 jQuery 代替 $;success是回调函数,不是马上执行,需要执行的时候马上处理响应;(body是响应的正文)

https://img-blog.csdnimg.cn/c8de27c65d1f468da4e37ff796705329.png" alt="在这里插入图片描述" />

5)使用 postman 工具直接构造http请求
下载完后,postman 使用流程:
① 首先创建 workspace

https://img-blog.csdnimg.cn/a760e964fe1840208aa2ae4860db96c0.png" alt="在这里插入图片描述" />

② 创建workspace 填写具体信息

https://img-blog.csdnimg.cn/efa5fb8f40f7468a90f03bcd1c6e8e3b.png" alt="在这里插入图片描述" />

③ 创建完毕workspace 点击 + 号创建标签页

https://img-blog.csdnimg.cn/47c6e780bf6941049e3c7ac10a62b174.png#pic_center" alt="在这里插入图片描述" />
④ 点击save 可以修改名称,例如修改名称为 “请求test”
https://img-blog.csdnimg.cn/605809130e6e42dfa23276323209cfc6.png" alt="在这里插入图片描述" />

⑤ 点击构造目标请求

https://img-blog.csdnimg.cn/6a23522254a6484e846275f35319d638.png#pic_center" alt="在这里插入图片描述" />

⑥ 查看构造完成的请求

https://img-blog.csdnimg.cn/e1c3976839d447d68ee9e8b6361fc297.png" alt="在这里插入图片描述" />

⑦ postman 可以代码生成请求

https://img-blog.csdnimg.cn/797cc6638b3a44b28c84f611da6b0fac.png" alt="在这里插入图片描述" />

https__http_54">2. https - 在http上加密

https_55">2.1 为什么会有https?

https 是在http上加了一层密,为了减少例如运行商劫持,黑客篡改这样的事情发生,所以就有了https;

明文:在网络上传输数据,没有加密的数据;
密文:在网络上传输数据,经过加密的数据;

2.2 加密方式

① 对称加密 :只有一个密钥 key,且加密和解密使用同一个密钥;
明文 + 密钥 =》密文
密文 + 密钥 =》明文
优点:计算速度快;
② 非对称加密:有两个密钥,公钥 public, 私钥 private
明文 + 公钥 =》密文 或 明文 + 私钥 =》密文
密文 + 私钥 =》 明文 或 密文 + 公钥 =》明文

https__70">2.3 https加密 基本过程

1)使用对称密钥 key 加密数据

使用对称密钥,保证业务数据的安全;

思想:直接传输的数据,是明文不安全,对数据加密变为密文,密文需要对应的密钥解密,每个客户端的密钥都是不同的,需要客户端将自己生成的对称密钥 key 发送给服务器;

传输密钥会发生的问题:在网络传输过程中密钥key可能会别黑客进行截获,所以需要对对称密钥key进行再次加密,引入了 非对称密钥 对 对称密钥 进行加密;

https://img-blog.csdnimg.cn/7dd98588fd72494d9515a6b1be801264.png" alt="在这里插入图片描述" />

2)引入 非对称密钥

目的:对 对称密钥 进行加密传给服务器;非对称密钥,安全传输对称密钥;

服务器生成一对非对称密钥:公钥(pub), 私钥(pri);
思想:客户端首先请求服务器公钥pub, 客户端获取公钥pub, 会对自己生成的对称密钥key进行加密,再传输给服务器;黑客可以获取密文但是此时无服务器私钥无法解密;服务器此时获取对称密钥key, 之后客户端与服务器之间使用密钥key加密传输数据;

会产生的问题:黑客自己构造出一对非对称密钥,与客户端进行交互获取密钥key, 再与服务器交互将密钥传输给服务器,此时客户端再与服务器交互黑客就看以获取它们之间的数据;由此引入中间人攻击;

非对称密钥传输过程如图:

三个密钥,客户端的对称密钥key, 服务器公钥pub,私钥pri;https://img-blog.csdnimg.cn/831a58a048504d70b0a9fd49d9e4248f.png" alt="在这里插入图片描述" />

3)中间人攻击

中间人攻击,黑客能拿到对称密钥
思想:黑客通过自己生成公钥pub2, 私钥pri2, 将自己的公钥pub2传给客户端,客户端使用pub2加密对称密钥key再传输;此时黑客就能通过自己的私钥pri2解密得到对称密钥key;黑客将服务器传来的公钥pub记录,得到密钥后将对称密钥key重新加密传输给服务器,服务器就能通过服务器私钥pri解密得到key; 所以之后的数据就会被黑客知道;

https://img-blog.csdnimg.cn/33abd41d84c843b898543b1a0446f35e.png" alt="在这里插入图片描述" />

4)引入证书

引入证书,客户端能检验该公钥是否正确;

1.了解证书中基本包含的信息
服务器域名,证书的过期时间,证书颁发机构名称,服务器公钥,加密后的签名等;

【注】签名:就是校验和,对证书中的所有属性进行计算的一个值
,会被机构的私钥进行加密;

2.客户端如何检验证书中的签名?(得到两次签名看是否一致)
① 首先得到证书中的签名,客户端使用操作系统中自带的权威机构的私钥解密得到校验和sum1
② 客户端使用相同的算法重新计算一遍签名,得到校验和sum2
③ 如果sum1 == sum2,说明证书没有被篡改过,可以使用里面的公钥;如果sum1 != sum2,说明证书中的数据被修改过,客户端浏览器报错;
【注】每个客户端的操作系统上都有权威机构的私钥pri3;

3.为什么黑客会篡改失败呢?
黑客篡改过程:
① 黑客可以获取到证书的服务器公钥pub, 替换自己的公钥pub2;
② 黑客根据证书重新计算签名;
③ 黑客没有权威机构的私钥pri3无法对重新计算的签名重新加密,所以篡改失败;

https://img-blog.csdnimg.cn/97be8d12f9a241e9a40eac69e2be52fd.png" alt="在这里插入图片描述" />


总结

✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!


http://www.niftyadmin.cn/n/1010224.html

相关文章

JAVA学习笔记(WEB.XML详解)

前言: 配置内容的加载顺序: ServletContext > context-param > listener > filter > servlet 1. 基础标签 web-app 根标签 display-name 应用名称 disciption 应用描述 2. 参数 context -param context-name context-value 值可以是配置…

dart之异步编程(一):Dart 语言异步编程基础

dart笔记之异步编程(一) Dart语言异步编程基础 - 文章信息 - Author: Jack Lee (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChineAddress of this article:https://blog.csdn.net/qq_28550263/article/de…

C++ 基础知识 面试题(一)

1.变量的声明与定义 声明:int x; //告诉编译器这个变量的类型和名称 定义:int x 0; //告诉编译器这个变量的类型和名称,为该变量分配内存空间,并初始化该变量 主要区别在于是否为变量分配内存空间 2.extern关键字 用法一&…

【C语言初阶(8)】函数1

文章目录 1. 函数的介绍2. 函数的分类2.1 库函数2.2 自定义函数 3. 函数的参数4. 函数的调用4.1 传值调用4.2 传址调用 1. 函数的介绍 1. 什么是函数? 函数是完成特定任务的独立程序代码单元。语法规则定义了函数的结构和使用方式。 一些函数执行某些动作&#xff…

Spring Boot 中的服务发现

Spring Boot 中的服务发现 Spring Boot 是一个非常流行的 Java Web 开发框架,它提供了很多工具和组件来简化 Web 应用程序的开发。其中,服务发现是 Spring Boot 中的一个非常重要的组件,它可以帮助我们自动地发现和管理应用程序中的服务。 什…

登录校验-会话技术/JWT令牌

登录校验 会话技术 会话: 用户打开浏览器,访问web资源的时候,会话建立。直到一方断开连接,会话结束,一次会话中包含多次响应 会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来…

UE5.2 LyraDemo源码阅读笔记(二)

UE5.2 LyraDemo源码阅读笔记(二) 创建了关卡中的体验玩家Actor和7个体验玩法入口之后。 接下来操作关卡中的玩家与玩法入口交互,进入玩法入口,选择进入B_LyraFrontEnd_Experience玩法入口,也就是第3个入口。触发以下请…

计网实验第四章:IP

问题集1: 1.192.168.31.7 2. 上层协议为ICMP,并且其字段值为1 3. 20字节 56字节 - 20字节 36字节 解释:如图所示 4. 这个报文段没有分段发送 原因如图:按照下图所示 标志位显示没有更多的分段。 5. 同一地址发送的这两个…