网络原理 HTTP _ HTTPS

news2024/11/17 23:31:38

回顾

我们前面介绍了HTTP协议的请求和响应的基本结构

请求报文是由首行+请求头+空行+正文来组成的

响应报文是由首行+形影头+空行+响应正文组成的

我们也介绍了一定的请求头之中的键值对的属性

Host,Content-type,Content-length,User-agent,Referer,Cookie

HTTP协议中的状态码

我们先介绍一些常用的状态码信息,再将其大类展开

1. 200 OK

一切顺利,没问题

2.404 Not Found  表示访问的资源没找到(有些朋友是不是经常遇见呀hhh)

3.403 Forbidden   表示访问的资源没有权限  

可能是因为没有登录就访问私有资源导致的等

4.405 Method Not Allowed 这里就是可能服务器只支持Get请求而你却使用了Post请求导致的

5.500 Internet Server Error  服务器内部挂了

6.302 Move temporarily   重定向(临时) 301则为永久重定向

可能就是一个域名用了一段时间修改名字了

7.504  Gateway Timeout  这里就是请求超时,可能是服务器挂了,也可能是网挂了 

注:这里的永久重定向和临时重定向的区别就是是否影响浏览器的缓存

永久重定向和临时重定向的区别就是永久重定向会缓存重定向的结果方便访问

在重定向报文的响应中有一个特殊的header叫做Location

描述了重定向的目标地址

还有一个特殊的状态码 

418  无意义

表示一个彩蛋状态码  大家在写代码的时候千万不要效仿

如何构建HTTP请求

1.通过代码构造

类似于爬虫在网上爬图片  比较容易这里不做过多解释

2.使用第三方工具

这个更容易,咱们使用这种方式来操作

首先我们需要下载一个postMan

这软件其实是有对象的,叫做PostWoman 和其功能类似

postman.com/downloads/

下面我们简单介绍创建一个http请求的流程

首先创建一个默认请求

然后可以对这里的参数进行一定的调整

如果需要代码的可以点击右上方自动生成的代码,最后点击send就发送给服务器了

HTTPS

下面我们开始介绍HTTPS

首当其冲的肯定就是为什么需要HTTPS?

其实HTTP协议就已经能够满足日常传输数据了,我们加了一个SSL层就是为了保证数据不被篡改,比如说我想下载一个 千千动听,这里可能返回的下载链接是QQ浏览器的

我们之前也说过运营商劫持问题

这里可能连接有一个假的wifi,你使用这个wifi传输的数据就被黑客从中截获了

解决安全问题,最核心的要点就是加密

我们只需要让黑客拿到数据也无法解密就行了

下面解释几个专业词

明文 传输的原始数据

密文  加密后的数据

对称加密   加密解密方式使用同一个秘钥

非对称加密   加密和解密是两个秘钥  使用a秘钥加密就使用b秘钥解密,反之亦然

对称加密

这里每个客户端使用的秘钥都是不同的,不然黑客只需要自己伪造一个客户端就可以得到数据了,但是如果秘钥使用明文传输,黑客从中也可以轻而易举的获取到,所以用户最好对传输的秘钥也进行一次加密,这里如果使用对称加密对秘钥进行加密,只是一层套娃,此时也是行不通的,所以我们使用非对称加密进行操作(因为这里也要考虑加密的秘钥传输问题)

注:这里为啥不使用非对称加密对header或者是body一起加密呢,这是因为非对称加密使用的硬件资源比较多,耗时比较长,使用非对称加密可能就超出数据原有价值了

所以我们使用非对称加密对对称加密秘钥进行加密

这里称不公开出去的秘钥为私钥,公开出去的秘钥为公钥

服务器持有私钥,然后将公钥发送给客户端(公钥无所谓黑客去不去获取,因为他没有私钥无法解密)

这里客户端使用公钥加密后发送回去给服务器

这样其实也并不是无懈可击的

这里又涉及到一种破坏方式 -- 中间人攻击

我们黑客只需要获取到服务器发送的公钥后截断,发送自己创建的公钥即可,此时客户端使用假的公钥进行加密,传输给黑客黑客就可以使用私钥解密,此时再用截取的公钥进行加密发送给服务器即可

破解方式:使用权威机构的证书即可

这样可以鉴别这个公钥是否是被伪造的

"证书"是一个结构化的数据,里面包含很多属性

比如服务器的域名,公钥,证书的有效期等等

证书是服务器向第三方公正机构申请的

那么这里开始传输的就是证书了,黑客就算看到了也无法修改证书的内容

因为客户端在看到证书之后就会对证书的信息进行验证真伪

此时证书就有一个非常关键的验证信息:证书签名

这里证书的签名就是使用公正机构的私钥对源证书其余字段内容的校验和(CRC,MD5)进行加密的内容

此时客户端拿到证书时候使用同样的算法对字段进行计算,得到校验和1

再使用公正机构的公钥对签名进行解析得到校验和2,最后进行识别两者是否相等即可

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

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

相关文章

nginx-------- 高性能的 Web服务端 (三) 验证模块 页面配置

一、http设置 1.1 验证模块 需要输入用户名和密码 htpasswd 此命令来自于 httpd-tools 包,如果没有安装 安装一下即可 也可以安装httpd 直接yum install httpd -y 也一样 第一次生成文件htpasswd -c 文件路径 姓名 交互式生成密码 htpasswd -bc 文…

【Vue3】学习computed计算属性

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

Vision Transfomer系列第二节---Tricks测试

目录 学习式和固定式位置编码测试dropout的作用测试block深度的作用测试embeding维度大小的作用测试多头的作用测试Overlap Patch的作用 学习式和固定式位置编码测试 主要测试无位置编码\可学习位置编码和固定式位置编码的训练效果: 其中固定式位置编码采用之前博客的正余弦位…

动态规划算法学习(基础)

做题步骤: 确定dp数组的含义(一维或者二维) 获取递推公式 dp数组如何初始化 确定遍历顺序 打印dp数组(检查) 题目: 1. 斐波那契数 509 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 …

【C++】类和对象---友元,内部类,匿名对象详解

目录 友元 友元函数 友元类 内部类 匿名对象 ⭐友元 友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以 友元不宜多用。 友元分为:友元函数和友元类。 ⚡友元函数 先看一个问题&#x…

React18源码: Fiber树中的全局状态与双缓冲

Fiber树构造 在React运行时中,fiber树构造位于 react-reconciler 包在正式解读 fiber 树构造之前,再次回顾一下renconciler的4个阶段 1.输入阶段:衔接react-dom包,承接fiber更新请求2.注册调度任务:与调度中心(schedu…

Nginx网络服务四-----日志、Nginx压缩和ssl

1.自定义访问日志 如果访问出错---404,可以去看error.log日志信息 访问日志是记录客户端即用户的具体请求内容信息,而在全局配置模块中的error_log是记录nginx服务器运行时的日志保存路径和记录日志的level,因此两者是不同的,而且…

机器视觉【3】非线性求解相机几何参数

线性求解相机几何参数的缺点 上一章节介绍学习了(DLT)线性求解相机几何参数,了解到线性求解法当中比较明显的缺点: 没有考虑到镜头畸变的影响不能引入更多的约束条件融入到DLT算法当中优化最关键的是,代数距离并不是…

Python入门学习——基础语法

一、Python解释器 1. Python解释器的作用是&#xff1a; 将Python代码翻译成计算机认识的O和1并提交计算机执行在解释器环境内可以一行行的执行我们输入的代码也可以使用解释器程序&#xff0c;去执行".py"代码文件 2. Python解释器程序在&#xff1a; <Python…

Jenkins详解

目录 一、Jenkins CI/CD 1、 Jenkins CI/CD 流程图 2、介绍 Jenkins 1、Jenkins概念 2、Jenkins目的 3、特性 4、产品发布流程 3、安装Jenkins 1、安装JDK 2、安装tomcat 3.安装maven 4安装jenkins 5.启动tomcat&#xff0c;并页面访问 5.添加节点 一、Jenkins CI/…

【Docker】免费使用的腾讯云容器镜像服务

需要云服务器等云产品来学习Linux可以移步/-->腾讯云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 1、设置密码 2、登录实例&#xff08;sudo docker login xxxxxx&#xff09; 3、新建命名空间&#xff08;每个命名空…

【Delphi 基础知识 35】MainMenu控件的详细使用

把TmenuMain放在Form后&#xff0c;右击控件就可以对菜单进行设计 菜单中添加分割线只需加“-”就可以添加一个分割线 级联菜单的设计 单击鼠标右键弹出菜单中选择Create Submenu菜单项 单选功能设计 要在设计的菜单项目中选择RadioItem属性为True&#xff0c;Checked属性…

使用logicflow流程图实例

一.背景 需要使用流程引擎开发项目&#xff0c;没有使用flowable、activiti这类的国外流程引擎&#xff0c;想使用国内的引擎二次开发&#xff0c;缺少单例模式的流程画图程序&#xff0c;都是vue、react、angluer的不适合&#xff0c;从网上找了antx6、logicflow、bpmn.js。感…

了解人工智能计算: 人工智能入门

回顾历史&#xff0c;各种数学仪器在人类进步的历程中发挥了重要作用。从算盘和六分仪到滑尺和计算机&#xff0c;这些工具推动贸易、助力航海&#xff0c;增强理解&#xff0c;并提高了我们的生活质量。然而&#xff0c;在科学和工业领域&#xff0c;推动我们前进的前沿且强大…

Redis 工具类 与 Redis 布隆过滤器

Redis 工具类 1. 核心依赖 <!--redis--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency><groupId>com.google.guava…

网卡本质,网络发展(局域网,广域网概念)

目录 引入 网卡的本质 网络的发展 引入 早期 局域网LAN&#xff08;Local Area Network&#xff09; 广域网WAN&#xff08;Wide Area Network&#xff09; 注意 引入 前面我们已经学习了很多关于linux系统的知识,其中文件系统和线程尤为繁杂 而网络其实也算系统的一部…

Vue监听器(上)之组合式watch

1. 定义监听器 //要监视的属性被改变时触发 watch(要监视的属性, (更改后的心值, 更改前的旧值) > {具体操作}, );//监视对象为getter的时候 //表达式内任意响应式属性被改变时触发 watch(() > return表达式, (表达式的新值, 表达式的旧值) > {具体操作} );//数组中任…

如何实现一个规则研究区域内数据的提取(matlab)

在利用经验正交分解&#xff08;EOF&#xff09;进行某一个研究区域分析时&#xff0c;我们需要将研究区域转换成N*M的矩阵&#xff0c;其中N为空间维度&#xff0c;M为时间维度&#xff0c;这意味着我们之前的数据加上时间维度是三维的&#xff0c;即&#xff08;lon,lat,rg&a…

【深入理解设计模式】原型设计模式

原型设计模式 原型设计模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它允许通过复制已有对象来创建新对象&#xff0c;而无需直接依赖它们的具体类。这种模式通常用于需要频繁创建相似对象的场景&#xff0c;以避免昂贵的创建操作或初始化过…

泛微e-office系统敏感信息泄露漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任 1、系统简介 泛微e-office系统是标准、易用、快速部署上线的专业协同OA软…