HTTP不加密、不验证身份、用80端口;HTTPS通过SSL/TLS加密数据、验证服务器证书、用443端口,且需CA签发证书,工作在HTTP与TCP之间。

如果您在访问网站时发现地址栏显示“不安全”提示,或部分功能无法正常加载,则可能是由于网站使用了HTTP协议而非HTTPS协议。以下是理解HTTP与HTTPS核心差异的关键路径:
一、数据传输是否加密
HTTP协议不包含任何内置加密机制,所有请求与响应内容(包括URL路径、表单提交的用户名密码、Cookie信息等)均以明文形式在网络中传输。攻击者通过网络嗅探工具即可直接读取完整通信内容。
HTTPS则强制启用SSL/TLS加密层,在TCP连接建立后、HTTP数据发送前完成密钥协商与身份验证,确保全部应用层数据在传输前已被加密。
1、HTTP通信中,用户在登录框输入的admin:123456会原样出现在网络数据包中;
2、HTTPS通信中,同一组凭据会被转换为类似a7f9b3c1e8d0...(随机密文)的不可读字节序列;
3、即使数据包被截获,没有服务器私钥的第三方无法还原原始信息。
二、服务器身份是否经过验证
HTTPS要求服务器在握手阶段向客户端提供由受信任CA(证书颁发机构)签发的数字证书,该证书包含域名、公钥、有效期及CA签名等关键字段。浏览器将自动校验证书链完整性、域名匹配性与吊销状态,任一环节失败即中断连接。
1、访问HTTP站点时,浏览器不会验证服务器真实身份,无法识别仿冒网站;
2、访问HTTPS站点时,若证书由GoDaddy签发且域名匹配www.example.com,则浏览器地址栏显示锁形图标;
3、若证书过期、域名不匹配或由未知CA签发,浏览器将弹出“您的连接不是私密连接”警告并阻止页面加载。
三、默认使用的网络端口不同
端口是操作系统区分不同类型网络服务的逻辑通道。HTTP与HTTPS因协议特性差异,被分配了专用端口号,便于服务器统一调度和防火墙策略配置。
1、HTTP协议默认绑定到TCP端口80,所有未显式标注端口的http://请求均指向该端口;
2、HTTPS协议默认绑定到TCP端口443,浏览器对https://开头的URL自动使用该端口发起连接;
3、服务器需在防火墙中分别开放80端口(供HTTP)和443端口(供HTTPS),二者互不兼容且不能共用同一监听进程。
四、证书获取与部署方式
HTTPS依赖数字证书建立可信链路,证书需由具备资质的CA机构签发或通过自动化工具生成。证书文件本身不加密数据,而是用于验证服务器公钥归属及启动加密会话。
1、传统商业证书需向Symantec、GlobalSign等CA提交域名所有权证明,并支付年费,有效期通常为1–2年;
2、Let’s Encrypt提供免费、自动化、开放的X.509证书,支持通配符与API集成,有效期为90天;
3、自签名证书虽可本地生成,但浏览器默认不信任其根证书,仅适用于内部测试环境。
五、协议栈工作层级差异
从网络模型角度看,HTTP直接运行于TCP协议之上,属于纯粹的应用层协议;HTTPS则在HTTP与TCP之间插入SSL/TLS安全子层,形成“HTTP over TLS”的封装结构,所有HTTP消息均作为TLS记录载荷进行加密传输。
1、HTTP请求直接封装进TCP段,无额外封装开销;
2、HTTPS请求先被分割为TLS记录,每条记录附加MAC校验值与加密头,再交由TCP传输;
3、TLS握手过程需额外交换至少9个数据包(含ClientHello、ServerHello、Certificate、ServerKeyExchange等),比HTTP多出约3倍初始延迟。










