在我们日常浏览网页、小程序发起网络请求、APP 和服务器交互数据的时候底层全部依赖 HTTP 协议完成数据传输现在打开任意一家正规网站浏览器地址栏都会带有 HTTPS 标识很多人只模糊知道 HTTPS 比 HTTP 更加安全却不清楚二者底层的本质区别也不明白为什么如今所有线上商业项目强制要求全站切换 HTTPS 协议本篇文章从传输方式、安全风险、应用场景、端口规范四个维度简短解析两款协议的区别与适用范围。HTTP 全称超文本传输协议是互联网早期最基础的网页通信协议它最大的特点是明文传输。客户端与服务器之间互相传递的所有内容包括账号用户名、登录密码、个人手机号、订单信息、收货地址等隐私数据都会以未加密的原始文本形式在网络链路中传输。网络数据在传输过程中会经过路由器、网关、运营商节点等多个中转设备一旦传输链路中存在恶意抓包工具就能直接抓取到完整原始数据随意查看用户隐私信息甚至篡改请求内容比如修改支付订单金额、篡改页面跳转地址诱导用户跳转至钓鱼页面造成财产损失。举一个生活化的例子HTTP 明文传输就等同于在公共场合大声口述信件内容路过的所有人都能听清信件里的全部文字信件内容完全没有保密性可言。同时 HTTP 协议没有服务器身份校验机制客户端无法确认自己正在连接的服务器是否为官方正版服务黑客可以搭建高仿虚假服务器拦截流量伪装成正规网站骗取用户信息也就是常说的中间人劫持攻击早年大量钓鱼网站、弹窗恶意广告大多都是利用 HTTP 协议无防护的漏洞实现劫持跳转。在端口使用规范上HTTP 协议默认占用服务器 80 端口协议本身轻量化简洁没有额外加密计算开销运行速度更快。HTTPS 并不是一款全新的独立协议而是在 HTTP 协议外层嵌套 SSL/TLS 加密安全层相当于给明文传输的数据包裹一层加密外壳。客户端和服务器建立连接初期双方会完成证书校验与密钥协商流程服务器会向客户端出示由权威机构颁发的数字证书用来证明自身网站的官方合法身份杜绝虚假服务器伪装劫持。数据正式传输前会通过非对称加密算法协商出对称加密密钥后续所有交互数据都会使用该密钥进行加密编码即便数据包被恶意抓取破解加密内容需要极高的算力成本普通抓包手段完全无法读取原始信息也不能随意篡改数据包内容一旦数据被篡改接收端解密时会直接校验失败拒绝处理请求。HTTPS 协议默认使用服务器 443 端口因为多了加密、解密、证书校验的运算步骤相比纯 HTTP 会产生极其轻微的性能损耗但随着服务器硬件性能提升这点损耗完全可以忽略不计换来的却是传输链路的信息安全与身份可信。基于安全层面的硬性需求国内工信部与各大浏览器厂商早已出台规范要求所有具备用户登录、支付交易、个人信息采集功能的网站必须启用 HTTPS 加密协议未配置证书的 HTTP 网站会被浏览器标记为不安全站点甚至直接拦截访问。两款协议也有各自适配的场景HTTP 适合内网测试环境、本地项目调试、纯静态公开资讯页面这类无敏感数据传输的场景部署简单无需申请证书而面向外网普通用户的线上产品、涉及资金与隐私的业务系统必须强制部署 HTTPS 证书保障用户数据与业务流程不会遭受网络劫持与信息泄露风险。弄懂二者底层逻辑也是每一位前后端开发、测试、运维人员必须掌握的网络基础知识点。有用的知识又增加了吗~