http状态码
1xx
(临时响应):表示临时响应并需要请求者继续执行操作的状态码。100
(继续)请求者应当继续提出请求,服务器此时已经收到部分请求,等待接受其余部分101
(切换协议)请求者已要求服务器切换协议,服务器已确认并准备进行切换
2xx
(成功):请求已经成功处理200
(成功)服务器已经成果处理了请求
3xx
(重定向):请求已经完成,需要进一步操作301
(永久移动):请求的网页已经永久移动到新位置。服务器返回此相应时,会自动将请求转到新的位置。302
(临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。304
(未修改)从上次请求之后网页内容未修改,服务器此时不会返回网页内容。307
(临时重定向)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
307
和302
唯一的区别在于307
不会修改内容的主体,302
在一些客户端可能会错误的将请求方法转换为GET
4xx
(请求错误):请求出现错误400
(错误请求)服务器无法理解请求的语法401
(未授权)请求要求验证身份。在需要进行登录的网页服务器可能返回此响应403
(禁止)服务器拒绝请求404
(未找到)服务器找不到请求的网页
5xx
(服务器错误):服务器在处理请求时发生内部错误,可能是服务器本身错误500
(服务器内部错误)服务器遇到错误,无法完成请求502
(错误网关)服务器作为网关或代理,从上游服务器收到无效响应505
(http版本不受支持)服务器不支持请求的http版本协议
Http和Https的区别
- Https使用了混合加密(对称加密和非对称加密)的方法,http是明文传输,未进行加密。
- Http页面响应速度更快
- Https比Http更消耗资源
- Https使用端口为443,Http是80端口
对称加密和非对称加密
- 对称加密:加密解密使用同一个密钥。
- 优点:算法公开、计算量小、加密速度快、加密效率高、适合加密数据量大时的数据
- 缺点:双方需要使用相同的密钥,但是无法保证密钥传输是安全的。每次收发信息都要使用不同的密钥,所以密钥的管理成为困难,使用成本高。
- 非对称加密:加密和解密需要使用不同的密钥:公钥和私钥。
- 优点:算法公开、加密和解密使用不同密钥且私钥不用进行网络传播,安全性高
- 缺点:计算量大、加密和解密过程比对称加密慢
综合对称加密和非对称加密的特点:
Https加密、解密、验证及传输的过程
- 客户端根据url请求服务器发起加密通信请求。
- 服务器发送自己的CA数字证书,证书中包括公钥A、颁发证书机构、公司名称、域名、有效期……一系列信息。
- 客户端收到CA数字证书后验证其合法性。
1.
验证网站的域名是否和证书中相匹配,证书是否在有效期内等等信息;2.
查询给该网站颁发证书的机构CA;3.
再查询给中间证书机构颁发证书的机构CA(根证书),再将根证书与本地保存的根证书机构对比,匹配到则证明其证书可信。 - 客户端取出公钥A,同时生成一个随机码KEY,使用公钥A对KEY进行加密。
- 将加密后的随机码KEY发送给服务器,作为后面对称加密的密钥。
- 服务器收到加密的KEY后通过私钥B进行解密,此时客户端和服务器可以使用密钥KEY进行加密通信。
浏览器如何验证Https证书的合法性
CA机构给认可的网站生成数字签名:
- CA会将持有者的公钥、网站地址、颁发者、有效信息等信息打包,然后对这些信息进行Hash运算得到一个Hash值
- CA使用自己的私钥对Hash值进行加密,生成认证签名(Certificate Signature),代表CA对证书做了签名,认可该网站的真实性
- 最后将认证签名添加在文件证书中,形成数字证书
校验数字证书真伪:
- 客户端收到数字证书后对其内容进行同样的Hash运算,获取到该证书的Hash值,假设H1
- 浏览器或操作系统中集成了CA的公钥信息,客户端对数字证书中的CA签名进行解密得到值H2
- 比较H1和H2的值,相等代表证书可信,不相等代表证书不可信
证书链
https://www.bilibili.com/
网站的证书
服务器申请的证书不是根证书颁发的,是由根证书信任的中间证书所颁发的,但是浏览器或者操作系统只保存了根证书的公钥,所以要从根证书开始验证整个证书链是否可信。
- 客户端收到服务器的证书后,发现这个不是根证书,无法通过自己已有的公钥来进行验证。客户端会根据网站的签发着找到中间证书(GlobalSign RSA OV SSL CA 2018),再通过中间证书的签发着找到根证书(GlobalSign)。
- 找到根证书后会在浏览器或操作系统中搜索此证书是否在根证书的清单上,如果有就表明根证书可信。再通过根证书的公钥验证中间证书是否可信;如果可信在通过中间证书的公钥验证该服务器的证书是否可信;如果可信代表网站可信。
苹果系统中保存的bilibili根证书
网络攻击
- 中间人攻击:中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。
- DoS攻击:DoS攻击是指利用网络协议漏洞或其他系统以及应用软件的漏洞耗尽被攻击目标资源,使得被攻击的计算机或网络无法正常提供服务,直至系统停止响应甚至崩溃的攻击方式,即攻击者通过某种手段,导致目标机器或网络停止向合法用户提供正常的服务或资源访问。
- 跨站脚本攻击(XSS):指攻击者通过在网页中注入恶意脚本,当用户浏览网页时,恶意脚本执行,控制用户浏览器行为的一种攻击方式。
- 跨站请求伪造(CSRF):是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。