概念:
一、Http协议
HTTP(超文本传输协议)是一种用于传输超媒体文档(如HTML)的应用层协议,主要用于Web浏览器和服务器之间的通信。http也是客户端和服务器之间请求与响应的标准协议,客户端通常是浏览器,服务器则是托管网站的设备。
1、工作原理
请求:客户端向服务器发送HTTP请求,包含方法(如GET、POST)、URL、协议版本、请求头和可选的消息体。
响应:服务器返回HTTP响应,包含状态码(如200、404)、响应头和消息体(如HTML内容)。
2、特点
无状态:每个请求独立,服务器不保留之前的请求信息。
可扩展:通过请求头和响应头支持多种功能。
灵活:可传输HTML、JSON、XML等多种数据类型。
简要理解什么是HTTP?
HTTP(超文本传输协议)就像没有封口的快递信封
- 明文传输:快递单内容谁都能看(数据不加密)
- 快速送货:不检查快递员身份(无身份验证)
- 门牌号80:默认送到80号仓库(端口80)
二、Https协议
HTTPS(超文本传输安全协议)是HTTP的安全版本,通过TLS/SSL加密数据传输,确保通信的隐私和完整性。HTTPS在HTTP基础上加入TLS/SSL加密层,保护数据在传输过程中不被窃取或篡改。
1、工作原理
加密:使用TLS/SSL加密数据,防止中间人攻击。
证书:服务器提供数字证书,由受信任的证书颁发机构(CA)签发,验证服务器身份。
握手:客户端与服务器通过TLS握手建立安全连接,协商加密算法和密钥。
2、特点
安全性:加密数据,防止窃听和篡改。
身份验证:数字证书确保客户端与合法服务器通信。
数据完整性:防止数据在传输中被篡改。
简要理解什么是HTTPS?
HTTPS = HTTP + 防弹玻璃(SSL/TLS加密)
- 加密快递单:用密码书写内容(数据加密)
- 身份检查:核对快递公司执照(CA证书)
- 专用通道443:走VIP运输通道(端口443)
三、区别
http和https有一些核心的区别。比如最重要的安全性,和端口等等。
1、安全性
HTTP:
数据以明文形式传输,容易被中间人攻击。
例如:如果你在HTTP网站上输入密码,黑客可以通过网络嗅探工具轻松获取你的密码。
HTTPS:
数据通过TLS/SSL加密,即使被截获,也无法解密。
例如:在HTTPS网站上输入密码,即使黑客截获了数据,也只能看到乱码。
2、协议与端口
HTTP:
基于TCP协议,默认使用端口80。
例如:访问http://abc.com时,实际访问的是http://abc.com:80。
HTTPS:
基于TLS/SSL协议,默认使用端口443。
例如:访问https://abc.com时,实际访问的是https://abc.com:443。
3、身份验证
HTTP:
没有身份验证机制,无法确认服务器是否合法。
例如:你访问一个HTTP网站,无法确定它是否是钓鱼网站。
HTTPS:
使用数字证书验证服务器身份。证书由受信任的证书颁发机构(CA)签发。
例如:访问https://abc.com时,浏览器会检查证书是否有效,确保你访问的是真正的abc.com。
4、数据完整性
HTTP:
不保证数据完整性,数据可能在传输过程中被篡改。
例如:有些无聊的人可以修改HTTP网站返回的内容,插入恶意代码。
HTTPS:
通过加密和消息认证码(MAC)确保数据完整性,防止篡改。
例如:HTTPS网站返回的内容如果被篡改,浏览器会检测到并警告用户。
5、性能
HTTP:
没有加密开销,传输速度较快。
例如:加载一个HTTP网站时,速度通常比HTTPS快。
HTTPS:
由于加密和解密过程,会增加一定的性能开销。
例如:加载一个HTTPS网站时,速度可能稍慢,但现代硬件优化已经大大减少了这种差距。
四、总结
HTTP是Web通信的基础协议,但因其不安全性,已逐渐被HTTPS取代。HTTPS通过加密和身份验证,确保数据传输的安全性和完整性,是现代Web的标配。无论是为了保护用户隐私,还是提升网站的可信度,HTTPS都是不可或缺的。