什么是HTTP?
相关概念:
1.HTTP:超文本传输协议
2.HTML超文本标记语言
3.URL统一资源定位符
HTTP的请求方式:
1.GET:请求从服务器获取资源
2.HEAD: 类似于GET请求,只不过不会返回实体数据,只获取报头
3.POST:向服务器提交数据
4.PUT:替换服务器的内容
5.DELETE:请求服务器删除指定的资源
6.TRACE:对链路进行测试或诊断
HTTP请求格式:
HTTP响应格式:
HTTP响应状态码:
1.1XX:服务器收到请求,需要请求者继续执行操作
2.2XX:成功,操作被成功接收并处理
3.3XX:重定向,需要进一步的操作以完成请求
4.4XX:客户端错误,请求包含语法错误或无法完成请求
5.5XX:服务器错误,服务器在处理请求的过程中发生了错误
HTTP有哪些特点?
1.请求应答模式(1.0),即请求什么就应答什么
2.灵活可扩展(请求头的东西可以自己设置的)
3.可靠传输
4.无状态的( 即每次请求都是独立的,没有前后的联系),(他里面cookie,session的技术不是HTTP里面的规范,而是基于HTTP的灵活可扩展实现的)
HTTP为什么不安全?
- 泄露:http通信的情况下,数据是明文传输的,里面的数据可能被抓包
- 篡改:转账目标的账户被改成黑客的账户;收获地址被篡改
- 冒充:http不能验证通信双方的身份
HTTPS如何解决这些问题?
对称加密(共享密钥加密)
这种方式可能出现的风险:
- 这种方式在服务器与客户端密钥传输的时候也可能存在泄密的风险
- 因为客户端要和不同的服务器通信,那么他和每个服务器通信的密钥都要是不同的,那么这里就会出现密钥的存储,管理问题
他的优点是: - 加密解密比较快
非对称加密(公开密钥加密)![在这里插入图片描述](https://img-blog.csdnimg.cn/b408094a81a04615ae27056b51600d5f.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/188af198daac44b08ed399ecc5761789.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/1ca18f4926594f61b3c8e9bbaf87d58b.png)
缺点:加密的速度要比对称加密的速度低
中间人攻击
中间人攻击解决方案
通过向权威组织给公钥颁发证书
问题:
- 骗子网站把你的证书放到他的网站,冒充你怎么办?
域名和证书不匹配会提示
签名技术——指纹
公钥被替换成自己的了怎么办?
用HASH值来保证公钥没有篡改过
验签的公钥在哪?
这些权威可以颁发证书的机构的公钥,早就嵌入在操作系统里面了,下面这些就是根证书,他是为了证明证书的有效性的证书
非对称加密只是为了证明服务器的有效性的,验证通过之后是通过对称加密的算法通信的,去降低通信的成本