http 和 https 的区别
文章目录
一.HTTP 传输协议
1.1 什么时候http协议
超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于
TCP、IP协议,互联网目前使用的最为广泛的网络协议,所有的WWW文件都必须遵守这个标准,设计HTTP协议的初衷,就是为了提供一种发送和接受http页面的方法。
| 版本 | 产生时间 | 内容 |
|---|---|---|
| http 0.9 | 1991 | 不涉及数据包传输,规定客户端和服务器之间只能进行Get请求 |
| http 1.0 | 1996 | 传输格式不显示,增加 Put,Patch,Head,Options,Delete命令 |
| http 1.1 | 1997 | 增加了长链接,管道机制,分块传输编码 |
| http 2.0 | 1996 | 多路复用 |
二.多路复用的功能
多个 stream 公用一个 TCP/IP 连接
三.http报文
https://www.cnblogs.com/biyeymyhjob/archive/2012/07/28/2612910.html
四.什么是 https
https 是身披 SSL 外壳的HTTP,HTTPS 是一种通过计算机网络进行安全通信的传输协议,经过 HTTP 进行通信,利用
SSL/TLS建立安全通信,加密数据包,HTTPS主要就是通过对网站服务器的身份认证,同时保护交互数据的隐式与完整性。
http特点:
- 无状态
- 无连接(发完数据就断开联系)
- 基于请求和相应,由客户端发起,服务器端响应
- 简单快速,灵活,(因为说断开就断开,说响应就相应)
- 他是用明文的方法进行传输,而且不会对通信的双方,进行确认,无法保证数据的完整性。
https特点
- 内容加密:采用混合加密技术,中间者无法直接查看明文内容
- 验证身份:通过证书认证,客户端访问的是自己的服务器
- 保护数据完整性:防止传输的内容被人篡改
五.HTTP通信传输
客户端输入 URL 回车,DNS 解析域名得到服务器的IP 地址,服务器端在 80 端口监听客户端的请求,端口通过 TCP/IP 协议建立 HTTP 请求。
六.HTTPS 的原理
- http 默认的端口号是80;
- https 默认的端口号是:443;
连接过程
-
client向server发送请求,到服务器的443端口,内容包括,一个随机数和一个客户端支持的加密算法 - 客户端收到信息以后,给服务器端一个相应握手机制,
server会返回给服务器端一个随机数,还有匹配好的加密算法,这个加密算法,一定是匹配好的加密算法的子集。 - 随后
server会往client发送的是一个数字证书,server必须有一套自己的数字证书,他可以只制作,也可以向组织申请,区别在于自己制作的需要经过客户端认证,其实这个证书就是一个公钥 - 如果客户端认证了
数字证书以后,就会产生一个随机值(预主密钥) - 然后客户端将
随机数1、随机数2、预主密钥,组成会话密钥,然后通过数字证书的公钥,来加密会话密钥 - 服务器端解密,得到
随机数1,随机数2、预主密钥,验证他们和客户端的相同 - 客户端先发一条加密的消息给服务器,确定服务器能收到
- 服务器也发送一条加密的消息给客户端,保证客户端能收到,那么
SSL连接就建成了
七. HTTPS的问题
- https 加密也还是有限的,不能防止对服务器的攻击
- SSL 证书也不是绝对安全的,比如某灯塔国家,可以控制
AC证书, - SSL 证书需要购买,功能越强大,也就越贵
-
https协议会让界面的加载速度延长50% -
https缓存不如http连接高效 -
https会占用很多的服务器资源,导致服务器压力增大,或者增大部署服务器的成本。
参考文献
https://www.bilibili.com/video/BV1rt4y1m7o5/?p=5&spm_id_from=pageDriver