1. 安全性(核心区别)
HTTP | HTTPS |
---|---|
数据以明文传输,易被窃听、篡改(如密码、信用卡号泄露) | 数据通过SSL/TLS加密,确保传输过程中保密性和完整性 |
无身份验证,可能遭遇中间人攻击 | 服务器需提供SSL证书,验证网站身份,防止钓鱼网站 |
示例:
- HTTP:像明信片,内容公开可见。
- HTTPS:像密封的信件,内容加密且防篡改。
2. 协议和端口
HTTP | HTTPS |
---|---|
基于TCP协议 | 在TCP协议上增加SSL/TLS加密层 |
默认端口 80 | 默认端口 443 |
3. SSL证书
HTTP | HTTPS |
---|---|
无需证书 | 需从权威机构(如Let's Encrypt、DigiCert)申请SSL证书 |
浏览器显示「不安全」警告 | 浏览器显示「锁」图标,增强用户信任 |
何时使用?
-
HTTP:
- 内部测试环境
- 无需敏感数据传输的场景(如静态页面)
-
HTTPS:
- 登录、支付、用户数据交互等敏感操作
- 所有现代生产环境(Chrome已强制要求)
HTTP 协议介绍
HTTP 协议,全称超文本传输协议(Hypertext Transfer Protocol)。顾名思义,HTTP 协议就是用来规范超文本的传输,超文本,也就是网络上的包括文本在内的各式各样的消息,具体来说,主要是来规范浏览器和服务器端的行为的。
并且,HTTP 是一个无状态(stateless)协议,也就是说服务器不维护任何有关客户端过去所发请求的消息。这其实是一种懒政,有状态协议会更加复杂,需要维护状态(历史信息),而且如果客户或服务器失效,会产生状态的不一致,解决这种不一致的代价更高。
HTTP 协议通信过程
HTTP 是应用层协议,它以 TCP(传输层)作为底层协议,默认端口为 80. 通信过程主要如下:
- 服务器在 80 端口等待客户的请求。
- 浏览器发起到服务器的 TCP 连接(创建套接字 Socket)。
- 服务器接收来自浏览器的 TCP 连接。
- 浏览器(HTTP 客户端)与 Web 服务器(HTTP 服务器)交换 HTTP 消息。
- 关闭 TCP 连接。
HTTP 协议优点
扩展性强、速度快、跨平台支持性好。
HTTPS 协议
HTTPS 协议介绍
HTTPS 协议(Hyper Text Transfer Protocol Secure),是 HTTP 的加强安全版本。HTTPS 是基于 HTTP 的,也是用 TCP 作为底层协议,并额外使用 SSL/TLS 协议用作加密和安全认证。默认端口号是 443.
HTTPS 协议中,SSL 通道通常使用基于密钥的加密算法,密钥长度通常是 40 比特或 128 比特。
HTTPS 协议优点
保密性好、信任度高。