网络原理HTTP/HTTPS(2)

news2025/3/13 23:13:55

文章目录

  • HTTP响应状态码
    • 200 OK
    • 3xx 表示重定向
    • 4xx
    • 5xx
    • 状态码小结
  • HTTPS
  • HTTPS的加密
    • 对称加密
    • 非对称加密

HTTP响应状态码

状态码表⽰访问⼀个⻚⾯的结果.(是访问成功,还是失败,还是其他的⼀些情况…).以下为常见的状态码.

200 OK

这是⼀个最常⻅的状态码,表⽰访问成功
2xx都表示成功

3xx 表示重定向

请求访问的是A地址,响应返回一个重定向报文,告诉你应该访问B地址,很多时候页面跳转就可以通过重定向来实现,还有的时候,某个地址服务器迁移了,就会给旧地址挂一个重定向响应
301永久重定向
302临时重定向

4xx

404 Not Found
请求中的访问的资源在服务区上不存在
404这个状态码表示的是资源不存在,同时在body中也是可以返回一个指定的错误页面

403 Forbidden
表示访问地资源没有权限

418 状态码
是HTTP RFC文档中专门规定的一个状态码,没有实际意义,只是“开个玩笑”,称为“彩蛋”

5xx

表示服务器出错了

状态码小结

在这里插入图片描述

HTTPS

HTTPS也是一个应用层协议,是在HTTP协议的基础上引入一个加密层
HTTP协议内容是按照文本的方式明文传输的,这也就导致在传输过程中出现一些被篡改的情况
HTTPS就是一个重要的保护措施,之所以能够安全,最关键就在于“加密”
真正把密码学和计算机结合起来的,还是全靠以为大佬——图灵

HTTPS的加密

加密就是把明文(要传输的信息)进行一系列变换,生成密文
解密就是把密文再进行一系列变换,还原成明文
在这个加密和解密的过程中,往往需要一个或者多个中间的数据,辅助进行这个过程,这样的数据称为密钥

加密方式:
1.对称加密
加密和解密使用的密钥是同一个密钥
明文 + key --> 密文
密文 + key --> 明文

2.非对称加密
有两个密钥,一个称为“公钥”一个称为“私钥”(公钥就是可以公开的,私钥就是自己藏好的)
明文 + 公钥 --> 密文
密文 + 私钥 --> 明文
或者
明文 + 私钥 --> 密文
密文 + 公钥 --> 明文

对称加密

在这里插入图片描述
引⼊对称加密之后,即使数据被截获,由于⿊客不知道密钥是啥,因此就⽆法进⾏解密,也就不知道请求的真实内容是啥了.
但事情没这么简单.服务器同⼀时刻其实是给很多客⼾端提供服务的.这么多客⼾端,每个⼈⽤的秘钥都
必须是不同的(如果是相同那密钥就太容易扩散了,⿊客就也能拿到了).因此服务器就需要维护每个客⼾
端和每个密钥之间的关联关系,这也是个很⿇烦的事情
在这里插入图片描述
⽐较理想的做法,就是能在客⼾端和服务器建⽴连接的时候,双⽅协商确定这次的密钥是啥
在这里插入图片描述
但是如果直接把密钥明⽂传输,那么⿊客也就能获得密钥了,此时后续的加密操作就形同虚设了.
因此密钥的传输也必须加密传输!
但是要想对密钥进⾏对称加密,就仍然需要先协商确定⼀个"密钥的密钥".这就成了"先有鸡还是先有
蛋"的问题了。此时密钥的传输再⽤对称加密就行不通了.
就需要引⼊非对称加密.

非对称加密

⾮对称加密要用到两个密钥,⼀个叫做 “公钥”, ⼀个叫做 “私钥”.
公钥和私钥是配对的. 最⼤的缺点就是运算速度⾮常慢,比对称加密要慢很多.
• 通过公钥对明⽂加密, 变成密⽂
• 通过私钥对密⽂解密, 变成明⽂
也可以反着用
• 通过私钥对明⽂加密, 变成密⽂
• 通过公钥对密⽂解密, 变成明⽂
在这里插入图片描述
• 客⼾端在本地⽣成对称密钥, 通过公钥加密, 发送给服务器.
• 由于中间的⽹络设备没有私钥, 即使截获了数据, 也⽆法还原出内部的原⽂, 也就⽆法获取到对称密

• 服务器通过私钥解密 还原出客⼾端发送的对称密钥. 并且使⽤这个对称密钥加密给客⼾端返回的响
应数据.
• 后续客⼾端和服务器的通信都只⽤对称加密即可. 由于该密钥只有客⼾端和服务器两个主机知道, 其
他主机/设备不知道密钥即使截获数据也没有意义.

那么接下来问题⼜来了:
• 客⼾端如何获取到公钥?
• 客⼾端如何确定这个公钥不是⿊客伪造的?

中间⼈攻击
黑客可以使用中间人攻击,获取非对称密钥
假设服务器生成好的一对公钥(pub1)私钥(pri1)
黑客生成好的一对公钥(pub2)私钥(pri2)

在这里插入图片描述
客户端查询公钥pub1,服务器返回公钥pub1,被黑客收到,黑客替换pub1成pub2,发给了客户端,客户端返回给服务器,已经收到公钥,被黑客劫到,返回给服务器基于pub1的应答

如何解决中间人攻击问题
之所以能够进行中间人攻击,关键在于客户端没有辨别能力
就需要引入第三方的可以被大家信任的:公证机构
公证机构说这个公钥是正确的,不是被伪造的,就是可以信任的

服务器会向公证机构提交申请(提交一些材料,域名,公钥,厂商…),公证机构就会对这些材料进行审核,审核通过就会给服务器颁发一个证书,公证机构就会针对证书的各个属性计算出一个校验和,并且针对校验和进行加密(这个加密也是非对称加密,公证机构,自己生成一对公钥和私钥),就得到了一个数字签名
在这里插入图片描述
客户端拿到了证书,也就拿到了证书中的公钥,客户端就是需要验证这个公钥是否是服务器最初的公钥
这个过程称为证书的校验(核心机制:数字签名,拿着数据的每个字节,带入公式,就能算出一个结果数字,称为校验和,把这个数据和校验和一起发送给对方,对方再按照同样的方式再算一遍校验和,如果对方算出来的校验和和收到的校验和一致,就认为数据在传输过程中没有改变过;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis 异步队列

//produceMessage.ts 模拟生产者 import Redis from ioredis; const redis new Redis(); // 生产者:将消息推送到队列 async function produceMessage(queueName:string, message:string) {try {await redis.rpush(queueName, message);console.log(Produced messa…

D258——可单电源或双电源 工作,应用范围包括变频放大器、DC增益部件和所有常规运算放大电路。

D258是由两个独立的高增益运算放大器组成。可以是单电源工作,也可以是双电源工作,电源的电流消耗与电源电压大小无关。应用范围包括变频放大器、DC增益部件和所有常规运算放大电路。 主要特点: ● 可单电源或双电源 工作 ● 在一个封装内的两个经内部补…

【LeetCode每日一题】单调栈 581. 最短无序连续子数组

581. 最短无序连续子数组 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1: 输入&am…

JS逆向进阶篇【去哪儿旅行登录】【中篇-滑动轨迹破解补浏览器环境破参数】

目录: 每篇前言:0、整体分析1、逆向轨迹snapshot(1)分析:(2)Python轨迹生成:(3)AES加密:(4)轨迹加密:&#xf…

【Java EE初阶二十】关于http(一)

1. 初识http HTTP 最新的版本应该是 HTTP/3.0,目前大规模使用的版本 HTTP/1.1; 下面来简单说明一下使用 HTTP 协议的场景: 1、浏览器打开网站 (基本上) 2、手机 APP 访问对应的服务器 (大概率) 前面的 TCP与UDP 和http不同,HTTP 的报文格式&a…

Java实现自动化pdf打水印小项目 使用技术pdfbox、Documents4j

文章目录 前言源码获取一、需求说明二、 调研pdf处理工具word处理工具 三、技术栈选择四、功能实现实现效果详细功能介绍详细代码实现项目目录WordUtilsMain类实现部分:第一部分Main类实现部分:第二部分Main类实现部分:第三部分 资料获取 前言…

如何保护文件夹数据?怎么加密文件夹数据?

文件夹是电脑储存、管理数据的重要工具,为了避免文件夹数据泄露,我们需要加密保护文件夹。那么,怎么加密文件夹呢?下面我们就来了解一下。 如何避免文件夹数据泄露? 保护文件夹数据安全的方法有很多,例如…

QT-地形3D

QT-地形3D 一、 演示效果二、关键程序三、下载链接 一、 演示效果 二、关键程序 #include "ShaderProgram.h"namespace t3d::core {void ShaderProgram::init() {initializeOpenGLFunctions();loadShaders(); }void ShaderProgram::addShader(const QString &fil…

C++-带你初步走进继承(1)

1.继承的概念及定义 1.1继承的概念 继承 (inheritance) 机制是面向对象程序设计 使代码可以复用 的最重要的手段,它允许程序员在 保 持原有类特性的基础上进行扩展 ,增加功能,这样产生新的类,称派生类。继承 呈现了面向对象 …

在线SM3 HMAC加密工具

在线HMAC加密工具提供一站式服务,支持MD5至SHA512、RIPEMD160及SM3等多种哈希算法,用户可便捷选择算法并生成安全的HMAC散列值,确保消息完整性与验证来源。适用于开发调试、网络安全测试及敏感数据处理场景。 在线HMAC加密 - BTool在线工具软…

OpenAI视频生成模型Sora的全面解析:从ViViT、Diffusion Transformer到NaViT、VideoPoet

前言 真没想到,距离视频生成上一轮的集中爆发(详见《Sora之前的视频生成发展史:从Gen2、Emu Video到PixelDance、SVD、Pika 1.0》)才过去三个月,没想OpenAI一出手,该领域又直接变天了 自打2.16日OpenAI发布sora以来(其开发团队包…

基于数字双输入的超宽带(0.7-3.1GHz)Doherty功率放大器设计-从理论到ADS版图

基于数字双输入的超宽带(0.7-3.1GHz)Doherty功率放大器设计-从理论到ADS版图 参考论文: 高效连续型射频功率放大器研究 假期就要倒计时啦,估计是寒假假期的最后一个博客,希望各位龙年工作顺利,学业有成。 全部工程下载:基于数字…

企业总部与分部通过DSVPN实现互联

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! 厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OC…

云上业务一键性能调优,应用程序性能诊断工具 Btune 上线

- 01 - 终于等来了预算,这就把服务迁移到最新的 CPU 平台上去,这样前端的同事立马就能感受我们带来的速度提升了。可是…… 这些性能指标怎么回事?不仅没有全面提升,有些反而下降了。不应该这样啊,这可怎么办&#xf…

【软考中级备考笔记】计算机体系结构

计算机体系结构 2月19日 – 天气:阴转小雪 1. 冯诺依曼计算机体系结构 冯诺依曼将计算机分为了五大部分,分别是: 控制器:主要负责协调指令到执行运算器:负责算数和逻辑运算存储器:负责存储在指令执行过程…

vue封装el-table表格组件

先上效果图&#xff1a; 本文包含了具名插槽、作用域插槽、jsx语法三种&#xff1a; Render.vue&#xff08;很重要&#xff0c;必须有&#xff09;: <script> export default {name: "FreeRender",functional: true,props: {scope:Object,render: Functio…

Gitlab操作流程

阶段1-构建账户信息 1.1 管理员分配账户 方式1-推荐 企业正常使用gitlab时&#xff0c;一般由项目经理(超级管理员)手动创建开发者账户信息&#xff0c;然后将账户发送给开发者&#xff0c;以便登录使用&#xff1b; 流程如下&#xff1a; 点击创建用户按钮&#xff1b; 创…

自动驾驶中之定位总结

1 前言2 典型的单个定位方式2.1 基于通信的定位方法2.1.1 GNSS 全球卫星导航系统2.1.1.1 gnss的优点与缺点2.1.1.2 gnss定位技术2.1.1.2.1 RTK定位技术2.1.1.2.2 PPP定位技术 2.1.1.2 gnss定位技术总结 2.1.2 车联网定位 2.1 基于航位推算的定位方法2.1.1 惯性测试单元定位IMU2…

docker安装一系列镜像

启动docker systemctl start docker docker 启动已经停止的容器 docker start idOrName PS&#xff1a;idOrName为容器的id或者名称 1、安装mysql镜像 拉取mysql5.7的镜像 docker pull mysql:5.7 查看镜像 docker images 启动mysql #启动mysql docker run --name mysql…

PostgreSQL技术内幕(十三)探究MPP数据库分布式查询分发Dispatcher

Dispatcher&#xff08;分布式查询分发器&#xff09;是MPP数据库的核心组件&#xff0c;所有的查询任务都要经过其进行分发&#xff0c;起着沟通用户到协调者&#xff08;Coordinator&#xff0c;即QD&#xff09;和执行调度的关键作用。 在这次的直播中&#xff0c;我们为大…