HTTP 和 HTTPS 的区别主要体现在安全性、端口、数据传输方式等方面,下面是详细对比:
基本概念
协议 | 全称 | 简介 |
---|---|---|
HTTP | HyperText Transfer Protocol | 超文本传输协议,明文传输,不安全。 |
HTTPS | HyperText Transfer Protocol Secure | 安全的 HTTP,使用 SSL/TLS 加密。 |
主要区别
项目 | HTTP | HTTPS |
---|---|---|
安全性 | 不加密,数据是明文传输,容易被窃取或篡改。 | 使用 SSL/TLS 加密,数据传输更安全。 |
端口号 | 默认端口 80 | 默认端口 443 |
传输协议 | 使用 TCP | 使用 SSL/TLS + TCP |
证书 | 不需要证书 | 需要 SSL证书(可由 CA 颁发) |
URL格式 | http:// 开头 |
https:// 开头 |
性能 | 更快一些(但差距很小) | 加密过程略慢,但现代优化后基本无感知 |
SEO 友好 | 谷歌不推荐 | 谷歌等搜索引擎会优先 HTTPS 页面 |
举个例子说明
-
如果你访问 http://example.com,任何人都可以在你和服务器之间看到你传输的内容(比如账号密码)。
-
如果你访问 https://example.com,即使有人截取了你的数据,也因为是加密的,无法读取内容。
HTTPS工作流程简述
-
浏览器请求 HTTPS 页面;
-
服务器返回数字证书;
-
浏览器验证证书合法性(是否由可信机构签发、是否过期等);
-
双方协商加密方式;
-
建立安全连接(握手成功);
-
开始加密数据传输。
小贴士
-
自己部署网站建议尽量使用 HTTPS,可以用 Let's Encrypt 免费获取证书。
-
对前端来说,如果你使用的是 HTTPS,调用 HTTP 接口会被浏览器阻止(混合内容限制)。