当前位置: 首页 > ai >正文

Java学习第一百二十三部分——HTTP/HTTPS

目录

一、前言简介

二、HTTP简介

三、HTTPS简介

四、关键区别

五、关键联系

六、常见问题

七、总结归纳


一、前言简介

       HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是用于在Web浏览器和服务器之间传输数据的核心协议。

二、HTTP简介

1. 基础定义

  • 用于客户端(浏览器)和服务器之间的明文通信。

  • 数据以纯文本形式传输(如用户名、密码、信用卡号等)。

2. 安全性问题  

  • 无加密:传输内容可被第三方窃听或篡改(如公共Wi-Fi上的“中间人攻击”)。

  • 无身份验证:无法验证服务器真实性(可能访问到钓鱼网站)。

3. 技术细节

  • 默认端口:80 

  • 协议层:位于TCP/IP之上(应用层)。

4.典型场景

  • 静态信息展示(如新闻网站),无需敏感操作。

三、HTTPS简介

1. 核心改进:加密与身份验证  

  • HTTPS = HTTP + SSL/TLS加密层(SSL已淘汰,现多用TLS 1.2/1.3)。

  • 数据加密传输,即使被截获也无法解密。

2. 关键功能

  • 数据加密:通过对称加密(如AES)保护传输内容。

  • 服务器身份验证:由**CA(证书颁发机构)** 验证服务器身份,防止钓鱼。

  • 数据完整性:防止传输中被篡改(通过MAC算法验证)。

3. 技术细节 

  • 默认端口:443 

  • 加密流程:

     1. 客户端发起HTTPS请求。
     2. 服务器返回SSL证书(含公钥)。
     3. 客户端验证证书有效性(如是否过期、是否由可信CA签发)。
     4. 双方协商生成**会话密钥**(用于对称加密通信)。

4. 优势 

  • 提升用户信任(浏览器显示🔒图标)。

  • 符合隐私法规(如GDPR)。

  • SEO优化:谷歌等搜索引擎优先排名HTTPS网站。

四、关键区别

它们的主要区别在于安全性

特性HTTPHTTPS
加密❌ 明文传输✅ 加密传输(TLS/SSL)
端口80443
协议层应用层HTTP + TLS/SSL(传输层安全)
安全性易受攻击(窃听、篡改)高安全性(加密+身份验证)
证书无需证书需CA签发的SSL证书(如Let's Encrypt)
性能略快(无加密开销)略慢(加密计算),但HTTP/2/3优化后差距极小
SEO影响无优势谷歌等搜索引擎优先排名

五、关键联系

它们的联系非常紧密——HTTPS 本质上是 HTTP 的增强安全版本,两者属于同一协议族,但通过加密层实现了质的升级。二者如同“普通信件”与“防拆封加密信函”的关系——传递相同内容,但后者确保仅收件人可读。

1.核心联系

  • 基础协议相同:HTTPS 完全保留 HTTP 的所有功能和语义(如 GET/POST 方法、状态码、Header 结构等)。

  • 目标一致:两者均用于 Web 数据传输,解决客户端(浏览器)与服务器之间的通信问题。

2.协同工作场景

  • 浏览器兼容性处理

       当用户输入 http://example.com 时,现代浏览器会:

         (1) 尝试连接 HTTPS 版本(通过 HSTS 预加载列表)

         (2) 若失败则回退 HTTP(并显示“不安全”警告)

  • 混合内容(Mixed Content)

       HTTPS 页面中加载 HTTP 资源(如图片)时:

      (1)现代浏览器阻止执行脚本/样式等主动内容(安全风险高)

      (2)仅显示图片/视频等被动内容(仍标记“不安全”)

3.协议演进依赖关系

协议

依赖条件

说明

HTTP/1.1

可运行于 HTTP 或 HTTPS

基础文本协议

HTTP/2

必须基于 HTTPS

主流浏览器(Chrome/Firefox)仅支持 HTTPS

HTTP/3

必须基于 HTTPS

基于 QUIC 协议,强制加密

💡 关键结论:HTTPS 是 HTTP 的安全外壳,未来 Web 协议的演进(HTTP/2、HTTP/3)均建立在 HTTPS 基础之上。

4.实践意义

场景

推荐协议

原因

任何涉及用户数据的网站

HTTPS

防止数据泄露,符合 GDPR/PCI DSS 等法规

静态只读信息页

HTTP

无敏感操作时可简化部署(但浏览器仍会标记“不安全”)

HTTP 到 HTTPS 的过渡期

同时支持

通过 301 重定向逐步迁移,避免流量中断

六、常见问题

1.HTTPS是否100%安全?

  • HTTPS防止了传输层攻击,但无法防御服务器被入侵或用户设备中毒。仍需配合其他安全措施(如WAF、定期更新)。

2.本地开发环境需要HTTPS吗?  

  • 测试涉及OAuth、支付等场景时建议启用(可用自签名证书)。普通开发可暂用HTTP。

3.HTTPS如何影响网站速度? 

  • TLS握手增加约100ms延迟,但通过**TLS会话恢复**和**HTTP/2多路复用**可优化。实际体验差异可忽略。

4.为什么 HTTPS 不取代 HTTP?

  • 历史兼容性旧设备/嵌入式系统可能不支持 TLS 加密(如老式 IoT 设备)。

  • 内网环境公司内网服务可能仍用 HTTP(假设内网本身安全)。

  • 临时调试开发环境为简化流程暂用 HTTP(生产环境必须用 HTTPS)。

5.如何从 HTTP 升级到 HTTPS?

(1)技术依赖关系

  • HTTPS 必须依赖 HTTP 协议作为基础通信框架。

  • 加密层(TLS/SSL)仅对传输内容加密,不改变 HTTP 的原始数据格式。

(2)升级关键步骤

步骤

操作说明

1. 获取 SSL 证书

从 CA(如 Let's Encrypt)申请证书,验证服务器所有权。

2. 安装证书

将证书部署到 Web 服务器(Nginx/Apache 等)。

3. 强制重定向

通过服务器配置,将 HTTP(80端口)请求自动跳转到 HTTPS(443端口):

301 Moved Permanently

4. 更新资源链接

确保网页内所有资源(图片/CSS/JS)使用 https:// 协议,避免“混合内容”警告。

6.为什么HTTPS是必选项?

  • 用户安全:保护登录凭证、支付信息等敏感数据。

  • 合规要求:现代浏览器将HTTP页面标记为“不安全”,影响用户体验。

  • 技术演进:HTTP/2和HTTP/3仅支持HTTPS,提供更快、更稳定的传输。

  • 免费证书:Let's Encrypt等提供免费SSL证书,部署成本趋近于零。

七、总结归纳

  • 通过部署HTTPS,不仅保护了用户数据,更提升了品牌可信度和技术合规性。

  • 所有面向公众的网站都应启用 HTTPS,并通过 SSL Labs测试 验证配置安全性.

  • HTTPS = HTTP + 加密(TLS/SSL)+ 身份认证

http://www.xdnf.cn/news/17408.html

相关文章:

  • 18.3 全量微调:数据预处理之清洗与准备
  • windows的cmd命令【持续更新】
  • CompletableFuture实现Excel sheet页导出
  • 微信小程序中实现表单数据实时验证的方法
  • Python中的 __name__
  • Deep Learning MNIST手写数字识别 Mac
  • 深入解析Go设计模式:命令模式实战
  • 单链表专题---暴力算法美学(2)(有视频演示)
  • Linux 系统中,如何处理信号以避免竞态条件并确保程序稳定性?
  • Oracle 19C 查看卡慢的解决思路
  • 使用快捷键将当前屏幕内容滚动到边缘@首行首列@定位到第一行第一个字符@跳转到4个角落
  • 【2025CVPR-图象去雾方向】BEVDiffuser:基于地面实况引导的BEV去噪的即插即用扩散模型
  • 诺基亚就4G/5G相关专利起诉吉利对中国汽车及蜂窝模组企业的影响
  • PHP项目运行
  • 亚麻云之数据安家——RDS数据库服务入门
  • Jenkins | 账号及权限管理
  • 从 GPT‑2 到 gpt‑oss:解析架构的迭代
  • 在windows安装colmap并在cmd调用
  • 设计模式(Design Pattern)
  • C++ 黑马 内存分配模型
  • 通过trae开发你的第一个Chrome扩展插件
  • 2025年APP开发趋势:4大方向重构行业格局
  • [激光原理与应用-224]:机械 - 机械设计与加工 - 常见的术语以及含义
  • python | numpy小记(十):理解 NumPy 中的 `np.random.multinomial`(进阶)
  • 医学统计(随机对照研究分类变量结局数据的统计策略2)
  • 面对信号在时频平面打结,VNCMD分割算法深度解密
  • 【接口自动化】-5- 接口关联处理
  • 比特币现货和比特币合约的区别与联系
  • 金融机构在元宇宙中的业务开展与创新路径
  • nginx+lua+redis案例