网络原理 HTTP _ HTTPS

简介: 网络原理 HTTP _ HTTPS

回顾

我们前面介绍了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,最后进行识别两者是否相等即可


相关文章
|
4天前
|
机器学习/深度学习 算法 计算机视觉
卷积神经网络(CNN)的工作原理深度解析
【6月更文挑战第14天】本文深度解析卷积神经网络(CNN)的工作原理。CNN由输入层、卷积层、激活函数、池化层、全连接层和输出层构成。卷积层通过滤波器提取特征,激活函数增加非线性,池化层降低维度。全连接层整合特征,输出层根据任务产生预测。CNN通过特征提取、整合、反向传播和优化进行学习。尽管存在计算量大、参数多等问题,但随着技术发展,CNN在计算机视觉领域的潜力将持续增长。
|
6天前
|
机器学习/深度学习 算法 TensorFlow
深度学习基础:神经网络原理与构建
**摘要:** 本文介绍了深度学习中的神经网络基础,包括神经元模型、前向传播和反向传播。通过TensorFlow的Keras API,展示了如何构建并训练一个简单的神经网络,以对鸢尾花数据集进行分类。从数据预处理到模型构建、训练和评估,文章详细阐述了深度学习的基本流程,为读者提供了一个深度学习入门的起点。虽然深度学习领域广阔,涉及更多复杂技术和网络结构,但本文为后续学习奠定了基础。
33 5
|
4天前
|
机器学习/深度学习 自然语言处理 并行计算
YOLOv8改进 | 注意力机制 | 在主干网络中添加MHSA模块【原理+附完整代码】
Transformer中的多头自注意力机制(Multi-Head Self-Attention, MHSA)被用来增强模型捕捉序列数据中复杂关系的能力。该机制通过并行计算多个注意力头,使模型能关注不同位置和子空间的特征,提高了表示多样性。在YOLOv8的改进中,可以将MHSA代码添加到`/ultralytics/ultralytics/nn/modules/conv.py`,以增强网络的表示能力。完整实现和教程可在提供的链接中找到。
|
4天前
|
机器学习/深度学习
【从零开始学习深度学习】21. 卷积神经网络(CNN)之二维卷积层原理介绍、如何用卷积层检测物体边缘
【从零开始学习深度学习】21. 卷积神经网络(CNN)之二维卷积层原理介绍、如何用卷积层检测物体边缘
|
10天前
|
JSON 安全 Java
JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求
JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求
15 0
|
11天前
|
缓存
计算机网络——数据链路层-可靠传输的实现机制:选择重传协议SR(介绍、工作原理、窗口尺寸、题目练习)
计算机网络——数据链路层-可靠传输的实现机制:选择重传协议SR(介绍、工作原理、窗口尺寸、题目练习)
15 0
|
11天前
|
网络架构
计算机网络——计算机网络体系结构(2/4)-分层的必要性(五层协议原理体系结构)
计算机网络——计算机网络体系结构(2/4)-分层的必要性(五层协议原理体系结构)
12 0
|
28天前
|
消息中间件 Java Linux
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
|
10天前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
27 1
|
11天前
|
负载均衡 Ubuntu Linux
Linux命令探秘:bond2team与网络绑定技术
Linux的`bond2team`是网络绑定和团队技术工具,用于组合多个网络接口以提升带宽、容错性和负载均衡。通过安装`ifenslave-2.6`,在`/etc/sysconfig/network-scripts/`或`/etc/network/interfaces`配置文件中设定接口绑定模式,如`activebackup`。它支持负载均衡、容错和热备等多种工作模式,确保网络高可用性和性能。在配置前务必备份,并重启服务使配置生效。

热门文章

最新文章