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

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

相关推荐
SEEONTIME1 分钟前
python-24-一篇文章彻底掌握Python HTTP库Requests
开发语言·python·http·http库requests
速盾cdn2 分钟前
速盾:vue的cdn是干嘛的?
服务器·前端·网络
叫我龙翔19 分钟前
【计网】实现reactor反应堆模型 --- 框架搭建
linux·运维·网络
不爱学习的YY酱1 小时前
【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】试卷(4)
网络·计算机网络
装睡的小5郎2 小时前
家庭宽带如何开启公网ipv4和ipv6
网络
yfs10242 小时前
压缩Minio桶中的文件为ZIP,并通过 HTTP 响应输出
网络·网络协议·http
有谁看见我的剑了?2 小时前
Ubuntu 22.04.5 配置vlan子接口和网桥
服务器·网络·ubuntu
hgdlip2 小时前
有什么办法换网络ip动态
网络·tcp/ip·智能路由器
超栈2 小时前
HCIP(11)-期中综合实验(BGP、Peer、OSPF、VLAN、IP、Route-Policy)
运维·网络·网络协议·计算机网络·web安全·网络安全·信息与通信
დ旧言~2 小时前
【网络】应用层——HTTP协议
开发语言·网络·网络协议·http·php