白银网站建设熊掌号,老年大学网站开发,ftp服务器软件,界面交互设计文章目录 HTTP响应状态码200 OK3xx 表示重定向4xx5xx状态码小结 HTTPSHTTPS的加密对称加密非对称加密 HTTP响应状态码
状态码表⽰访问⼀个⻚⾯的结果.(是访问成功,还是失败,还是其他的⼀些情况…).以下为常见的状态码.
200 OK
这是⼀个最常⻅的状态码,表⽰访问成功 2xx都表示… 文章目录 HTTP响应状态码200 OK3xx 表示重定向4xx5xx状态码小结 HTTPSHTTPS的加密对称加密非对称加密 HTTP响应状态码
状态码表⽰访问⼀个⻚⾯的结果.(是访问成功,还是失败,还是其他的⼀些情况…).以下为常见的状态码.
200 OK
这是⼀个最常⻅的状态码,表⽰访问成功 2xx都表示成功
3xx 表示重定向
请求访问的是A地址响应返回一个重定向报文告诉你应该访问B地址很多时候页面跳转就可以通过重定向来实现还有的时候某个地址服务器迁移了就会给旧地址挂一个重定向响应 301永久重定向 302临时重定向
4xx
404 Not Found 请求中的访问的资源在服务区上不存在 404这个状态码表示的是资源不存在同时在body中也是可以返回一个指定的错误页面
403 Forbidden 表示访问地资源没有权限
418 状态码 是HTTP RFC文档中专门规定的一个状态码没有实际意义只是“开个玩笑”称为“彩蛋”
5xx
表示服务器出错了
状态码小结 HTTPS
HTTPS也是一个应用层协议是在HTTP协议的基础上引入一个加密层 HTTP协议内容是按照文本的方式明文传输的这也就导致在传输过程中出现一些被篡改的情况 HTTPS就是一个重要的保护措施之所以能够安全最关键就在于“加密” 真正把密码学和计算机结合起来的还是全靠以为大佬——图灵
HTTPS的加密
加密就是把明文要传输的信息进行一系列变换生成密文 解密就是把密文再进行一系列变换还原成明文 在这个加密和解密的过程中往往需要一个或者多个中间的数据辅助进行这个过程这样的数据称为密钥
加密方式 1.对称加密 加密和解密使用的密钥是同一个密钥 明文 key -- 密文 密文 key -- 明文
2.非对称加密 有两个密钥一个称为“公钥”一个称为“私钥”公钥就是可以公开的私钥就是自己藏好的 明文 公钥 -- 密文 密文 私钥 -- 明文 或者 明文 私钥 -- 密文 密文 公钥 -- 明文
对称加密 引⼊对称加密之后,即使数据被截获,由于⿊客不知道密钥是啥,因此就⽆法进⾏解密,也就不知道请求的真实内容是啥了. 但事情没这么简单.服务器同⼀时刻其实是给很多客⼾端提供服务的.这么多客⼾端,每个⼈⽤的秘钥都 必须是不同的(如果是相同那密钥就太容易扩散了,⿊客就也能拿到了).因此服务器就需要维护每个客⼾ 端和每个密钥之间的关联关系这也是个很⿇烦的事情 ⽐较理想的做法,就是能在客⼾端和服务器建⽴连接的时候,双⽅协商确定这次的密钥是啥 但是如果直接把密钥明⽂传输,那么⿊客也就能获得密钥了此时后续的加密操作就形同虚设了. 因此密钥的传输也必须加密传输! 但是要想对密钥进⾏对称加密,就仍然需要先协商确定⼀个密钥的密钥.这就成了先有鸡还是先有 蛋的问题了。此时密钥的传输再⽤对称加密就行不通了. 就需要引⼊非对称加密.
非对称加密
⾮对称加密要用到两个密钥,⼀个叫做 “公钥”, ⼀个叫做 “私钥”. 公钥和私钥是配对的. 最⼤的缺点就是运算速度⾮常慢比对称加密要慢很多. • 通过公钥对明⽂加密, 变成密⽂ • 通过私钥对密⽂解密, 变成明⽂ 也可以反着用 • 通过私钥对明⽂加密, 变成密⽂ • 通过公钥对密⽂解密, 变成明⽂ • 客⼾端在本地⽣成对称密钥, 通过公钥加密, 发送给服务器. • 由于中间的⽹络设备没有私钥, 即使截获了数据, 也⽆法还原出内部的原⽂, 也就⽆法获取到对称密 钥 • 服务器通过私钥解密 还原出客⼾端发送的对称密钥. 并且使⽤这个对称密钥加密给客⼾端返回的响 应数据. • 后续客⼾端和服务器的通信都只⽤对称加密即可. 由于该密钥只有客⼾端和服务器两个主机知道, 其 他主机/设备不知道密钥即使截获数据也没有意义. 那么接下来问题⼜来了: • 客⼾端如何获取到公钥? • 客⼾端如何确定这个公钥不是⿊客伪造的? 中间⼈攻击 黑客可以使用中间人攻击获取非对称密钥 假设服务器生成好的一对公钥pub1私钥pri1 黑客生成好的一对公钥pub2私钥pri2 客户端查询公钥pub1服务器返回公钥pub1被黑客收到黑客替换pub1成pub2发给了客户端客户端返回给服务器已经收到公钥被黑客劫到返回给服务器基于pub1的应答
如何解决中间人攻击问题 之所以能够进行中间人攻击关键在于客户端没有辨别能力 就需要引入第三方的可以被大家信任的公证机构 公证机构说这个公钥是正确的不是被伪造的就是可以信任的
服务器会向公证机构提交申请提交一些材料域名公钥厂商…)公证机构就会对这些材料进行审核审核通过就会给服务器颁发一个证书公证机构就会针对证书的各个属性计算出一个校验和并且针对校验和进行加密这个加密也是非对称加密公证机构自己生成一对公钥和私钥就得到了一个数字签名 客户端拿到了证书也就拿到了证书中的公钥客户端就是需要验证这个公钥是否是服务器最初的公钥 这个过程称为证书的校验核心机制数字签名拿着数据的每个字节带入公式就能算出一个结果数字称为校验和把这个数据和校验和一起发送给对方对方再按照同样的方式再算一遍校验和如果对方算出来的校验和和收到的校验和一致就认为数据在传输过程中没有改变过