HTTP协议

一、HTTP协议

状态码

用于响应中的 (表示响应的结果如何)

HTTP中的状态码都是标准约定好的

几个常见的状态码:

  1. 200 OK

表示OK,一切顺利

  1. 404 Not Found

访问资源没找到

  1. 403 Forbidden

请求资源没有权限访问.

  1. 405 Method Not Allowed

你的服务器只支持GET请求,但是你发了个POST请求

  1. 500 Internal Server Error

服务器内部错误(服务器挂了)

  1. 504 Gateway Timeout

访问服务器超时了

可能是服务器挂了,也可能是网挂了

  1. 302 Move temporarily 重定向

访问网页A,结果跳转到网页B

301 永久重定向

302 临时重定向

如果是永久重定向,浏览器就会把结果记录下来,下次访问就直接访问目标地址,不用多转跳一次.

在这种重定向的报文的响应中,会有一个特殊的header叫做location,就描述了要重定向到的目标地址,是在哪里.

状态码中还有一个特殊的418,无含义,彩蛋.

如何构造出HTTP请求

  1. 通过代码构造

  2. 通过第三方工具构造

PostMan 经典的广泛使用的工具

二、HTTPS协议

HTTPS是在HTTP的基础上,引入了一个加密层(SSL)

HTTP是明文传输(不安全),解决安全问题,最核心的要点就是 " 加密 "

明文=>密文 加密

密文=>明文 解密

加密的过程,需要一个关键的道具,称为密钥.

对称加密:加密和解密使用的是同一个密钥

非对称加密:加密和解密使用的是两个密钥,一个用来加密,另一个就用来解密.

两个密钥,就可以一个公示出去,称为 " 公钥 ",另一个自己保存好,称为 " 私钥 ".

HTTPS工作过程

只要针对HTTPS的数据进行解密了,就能够得到HTTP格式的数据.

需要引入加密,对上述传输的数据进行保护.主要就是针对header和body进行加密.

1.引入对称加密

通过对称加密的方式,针对传输的数据进行加密操作.

(1) 对称加密的时候,客户端和服务器需要使用同一个密钥.

(2) 不同的客户端,需要使用不同的密钥(如果所有的客户端密钥都相同,加密就形同虚设)

也就意味着,每个客户端连接到服务器的时候,都需要自己生成一个随机的密钥,并且把这个密钥告知服务器,(服务器生成的也行,需要告知给服务器)

但是,密钥传输给了对方,要是被黑客窃取了,就意味着加密操作没有用了.

  1. 引入非对称加密

使用非对称加密.主要的目的就是为了对对称密钥进行加密,确保对称密钥的安全性.

不能使用非对称加密,针对后续传输的各种 header body 等进行加密,而是只能使用非对称加密去加密对称密钥.非对称加密的加密解密成本要远远高于对称加密.

非对称加密的过程:

服务器生成一对非对称密钥,私钥服务器自己持有,公钥可以告知任何的客户端.

客户端在连上服务器之后,就需要先从服务器这边拿到公钥,客户端生成对称密钥,拿着公钥针对对称密钥进行加密.

此时就可以把加密之后的密文进行传输了.由于想要解密,必须通过私钥,而私钥只有服务器自己知道,此时这样的加密的数据就可以比较安全的到达服务器了.

服务器通过私钥解密之后得到了对称密钥,接下来和客户端之间的通信就通过对称加密来完成了.

证书

但是这样子,还是有风险的,黑客可以创建出自己的私钥和公钥,冒充自己是服务器.

要解决这个问题,就需要用到 " 证书 "

证书是一个结构化的数据,证书会包含一系列的信息.

证书是搭建服务器的人.要从第三方公证机构申请的.

客户端拿到数据之后,会对证书验证真伪.

客户端拿到证书之后,主要做两件事:

  1. 按照同样的校验和算法,把证书的其他字段都重新计算一遍,得到 校验和1

  2. 使用系统中内置的公证机构公钥,对证书中的签名进行解密,得到 校验和2

此时就可以对比两个校验和是否一致,从而得知证书是否被修改过,即数据是否有问题.

相关推荐
Python私教1 分钟前
GenericAgent记忆系统深度解析:四层架构如何让AI拥有永不遗忘的大脑
网络·人工智能·架构
身如柳絮随风扬31 分钟前
GET请求能带Body吗?GET与POST的核心区别全解析
http
时空系1 小时前
第9篇:成员功能——为结构体添加能力 Rust中文编程
开发语言·网络·rust
@encryption1 小时前
VLAN --- 深度学习
网络
@insist1232 小时前
信息安全工程师-虚拟专用网络核心技术与软考考点全解析
网络·软考·信息安全工程师·软件水平考试
以太浮标3 小时前
华为eNSP模拟器综合实验之- MGRE多点GRE隧道详解
运维·网络·网络协议·网络安全·华为·信息与通信
PaperData3 小时前
2000-2023年地级市数字基础设施评价指标体系
大数据·网络·数据库·人工智能·数据分析·经管
时空自由民.3 小时前
WebSocket 协议介绍
网络·websocket·网络协议
twc8294 小时前
全链路压测的环境复杂性:网络架构、应用架构与性能影响因素全解析
网络·软件测试·架构·性能测试·全链路压测
love you joyfully4 小时前
如何随时随地访问你的“进程”?
网络·人工智能·网络安全·远程访问·网络技术