🤡🤡🤡个人主页🤡🤡🤡
🤡🤡🤡JavaEE专栏🤡🤡🤡
文章目录
1.HTTP响应
1.2状态码
状态码描述了这次HTTP请求是否成功,如果失败那么失败的原因,每一个状态码都是有一组单词表示
- 200——OK 请求成功
- 404——Not Found 客户端请求的资源(路径)在服务器不存在,比如:这个就是一个可以被访问到的路径,也可以说这个路径下的资源服务器里是存在的,但是我将这个路径更改为不存在的就会返回404。
- 403——Forbidden 客户端访问的权限是不足的,就会被禁止访问
- 405——Method Not Allowed 请求的方法中服务器不支持,假设目前该服务器中只支持GET方法,但是你请求的方法是POST那么就会出现405
- 500——Internal Server Error 服务器内部错误 服务器内部出现了BUG
- 604——Gateway Timeout 服务器访问超时
- 302——Move Temporarily 临时重定向 访问某个地址的时候,访问的是旧地址,自动调转到新的地址上。
- 301——Move Permanently 永久重定向 访问的旧地址和新地址之间的映射关系就固定了,此时浏览器也会缓存这样的结果,等到后续在访问到旧地址就会直接构建出新地址的请求发送给服务器,这样就少了一次请求也减少了资源的开销,比如某一个公司换域名就会使用到这个。 301与302区别 302是可变的,而301是固定的。 Location :用来 进行重定向,或者在创建了某个新资源时使用 ETag:对于某个资源的某个特定版本的一个标识符,通常是一个 消息散列
2.HTTPS协议
2.1概念
HTTPS其实就是基于HTTP协议下加入了一个SSL,打比方就是将一个明文通过密钥进行加密成密文的意思,此处的密钥就是SSL,明文就是HTTP,密文就是HTTPS,通过加入SSL之后客户端与服务器在通信的时候传输的数据就可以得到保证,而这个加密的过程是在三次握手的时候进行的。
2.2引入对称加密
2.2.1概念
对称加密就是一个密钥,解密和加密都是通过这个密钥,客户端需要将数据传输给服务器就需要这个对称加密的密钥进行加密,服务器对客户端发送过来的数据进行解密也是通过这个密钥解密的。
2.2.2图解对称加密传输数据
采取对称加密数据:
在生活中是有许多客户端的,不仅仅只有一个,多个客户端需要服务器管理多个对称加密来维护各个客户端传输加密数据发送给服务器,并且需要将密钥传输过去,由于多个客户端,在传输的过程中管理的难度很大,并且危险性也高,那么我们就需要另一种方式将这个密钥进行加密然后传输给服务器,那么这个加密的形式我们应该用什么呢?如果继续用对称加密,那么这样就会陷入一个死循环,所以我们就引出了一个叫非对称加密。
2.3引入非对称加密
2.3.1概念
非对称加密由两个密钥组成,一个密钥是私钥,一个是公钥,如果用私钥加密那么就是用公钥解密,如果用公钥加密那么就需要私钥进行解密。
2.3.2图解非对称加密传输数据
引入非对称加密并不是针对数据本身加密,而是针对对称加密的密钥加密,使密钥可以不被外界知晓的传输给服务器,真正对数据加密的还是对称加密的密钥,这样服务器本身就持有公钥,而客户端就持有私钥(这个私钥每一个客户端都是一样的,这个私钥是服务器在三次握手期间传输给各个客户端的),引入了非对称加密还不能完全解决传输安全,还会有中间人攻击。
2.4中间人攻击
客户端在接收私钥的时候是无法区分到底是黑客自己的私钥还是服务器的私钥,在整个过程中黑客在与客户端对话的时候充当服务器的角色,在与服务器对话的时候充当客户端的角色,客户端和服务器一直都不知道黑客的存在,为了解决这个问题我们需要引入第三方机构的安全证书。
2.5引入证书
第三方机构:在第三方机构中生成的证书就会先进行对证书的各个字段校验和之后的结果放入数字签名中并使用公钥加密
客户端:客户端就需要将返回来的证书中的信息字段校验和之后,再让客户端内置的私钥对数字签名中的公钥解密,之后再将客户端校验和的结果与数字签名中的结果进行对比,如果出现不一样那么就说明不安全,不进行数据传输,如果一样那么就可以进行数据传输。
黑客:客户端可以通过私钥对证书中的数字签名解密,黑客也可以。
黑客能修改证书中的服务器的私钥,但是不修改证书中的数字签名:
那么客户端拿到数字签名之后通过私钥解密数字签名获得到的校验和与自己计算的校验和相比较,不符合,那么证书就作废
黑客修改证书中的服务器的私钥而且还修改证书的数字签名:
虽然黑客通过私钥解密了数字签名并作修改,但是你不知道第三方机构的公钥,你无法对数字签名加密,你只能去自己生成一个公钥去加密,但是当证书到达了客户端,客户端通过私钥来解密发现解密失败,证书作废。
版权归原作者 《冰美式与三明治》 所有, 如有侵权,请联系我们删除。