https和http

一、为什么要用https

使用HTTPS的核心原因是‌解决HTTP明文传输的安全缺陷,同时满足现代Web服务的合规和体验要求‌,具体可以分为四点:

1.解决HTTP的三大安全风险
HTTP是明文传输,存在三个无法避免的核心问题,HTTPS通过加密完全解决:

‌防窃听‌:HTTP传输的账号密码、交易信息、用户隐私都是明文,任何中间节点(比如公共WiFi)都能直接读取;HTTPS加密后,第三方即使截获数据也无法解密
‌防篡改‌:HTTP传输的内容容易被中间运营商篡改(比如植入广告、注入恶意脚本);HTTPS能校验内容完整性,一旦被篡改会直接被检测出来,浏览器会终止访问
‌防冒充‌:HTTP无法验证服务器身份,攻击者可以伪造假网站钓鱼;HTTPS通过CA证书验证服务器真实身份,用户能通过地址栏锁标确认网站合法性,降低钓鱼风险

2.满足平台和合规要求
现在主流浏览器对HTTP站点都会直接标注「不安全」,会吓退用户,影响信任度
微信、支付宝等平台的小程序、H5应用,强制要求必须使用HTTPS才能正常访问
金融、电商等涉及用户数据的业务,等保合规要求必须加密传输数据,HTTPS是合规基础

3.提升业务表现
搜索引擎(Google、百度)都会给HTTPS站点更高的排名权重,有利于SEO优化,获得更多流量
HTTP/2、HTTP/3等新性能协议,只能基于HTTPS部署,能大幅提升页面加载速度,改善用户体验

4.满足现代前端架构需求
前后端分离、PWA、WebAssembly等现代前端技术,都要求HTTPS环境才能使用;
对于移动端接口、小程序接口,HTTPS也是强制基础要求,HTTP接口无法正常调用。

二、https的加密过程

HTTPS采用‌「非对称加密交换密钥 + 对称加密传输数据」‌的混合加密方案,兼顾安全性和传输性能

阶段1:握手协商,交换随机数

客户端发起HTTPS请求,把自己支持的加密套件列表 + 随机数Client Random(客户端生成)发送给服务器
服务器从列表里选出双方都支持的加密套件 + 自己生成的随机数Server Random,同时把服务器的‌SSL证书‌返回给客户端

阶段2:验证证书,生成预主密钥

客户端验证SSL证书:确认证书由可信CA颁发、域名匹配、未过期,验证失败浏览器会弹出安全警告
证书验证通过后,客户端生成第三个随机数Pre-Master Secret,用证书里的‌公钥‌加密这个随机数,发送给服务器

阶段3:双方生成会话密钥

服务器用自己的‌私钥‌解密,拿到Pre-Master Secret
客户端和服务器分别用三个随机数Client Random + Server Random + Pre-Master Secret,通过约定的加密算法计算出最终的‌对称会话密钥

阶段4:握手结束,加密通信

客户端用会话密钥加密「握手结束消息」,发送给服务器
服务器用会话密钥解密验证,再加密自己的「握手结束消息」返回给客户端
握手完成,之后所有业务数据都用‌对称会话密钥‌加密传输:
客户端发送数据前用会话密钥加密,传输过程中即使被截获,没有密钥也无法解密
服务器收到后用会话密钥解密,处理完成后再用同一个密钥加密返回结果

三、http和https区别

对比维度 HTTP HTTPS
默认端口 80 443
传输安全性 明文传输,数据不加密,容易被窃听、篡改 所有传输数据都通过SSL/TLS加密,第三方无法窃取篡改内容
证书要求 不需要SSL证书 需要向CA机构申请SSL证书(也可获取免费证书)
协议结构 应用层直接基于TCP传输 HTTP + SSL/TLS加密层 + TCP传输
性能开销 连接建立快,无额外加密开销 握手阶段需要额外加密交互,比HTTP稍慢,优化后几乎无感知
搜索引擎排名 不占优势 搜索引擎会给HTTPS站点更高的排名权重
浏览器标识 地址栏标注「不安全」 地址栏显示锁形标识,可信证书标注「安全」
posted @ 2026-06-15 11:08  alex_lau  阅读(20)  评论(0)    收藏  举报