1、http介绍

一、HTTP 和 HTTPS 简介

  1. HTTP(HyperText Transfer Protocol)

    • 用途:用于网页数据传输(不加密)。
    • 协议特性:以明文形式传输数据,默认端口 80,无身份验证和完整性保护。
    • 典型场景:访问简单静态网站,如 http://example.com
  2. HTTPS(HTTP Secure)

    • 用途:在 HTTP 基础上通过 SSL/TLS 加密传输数据。
    • 协议特性:加密通信、身份验证(证书)、数据防篡改,默认端口 443
    • 典型场景:登录、支付等敏感操作(如 https://bank.com)。

二、网络四层协议(TCP/IP 模型)

以发送一封电子邮件为例的分层逻辑:

分层 功能 示例工具 类比
应用层 处理应用程序数据 HTTP、SMTP、DNS 信封内容(信件正文)
传输层 端到端连接管理 TCP(可靠)、UDP(快速) 邮局确认收件人收到信件(挂号信)
网络层 逻辑寻址与路由 IP、路由器 分拣中心确定信件的目的城市
网络接口层 物理传输(电缆、WiFi) Ethernet、Wi-Fi 卡车将信件运送到下一个中转站

三、HTTP/HTTPS 在四层中的定位

  1. 应用层:HTTP/HTTPS 协议本身(定义数据格式)。

    • HTTP :明文传输 GET /index.html
    • HTTPS :加密后的 HTTP 数据(如 g8Fw6£ad...)。
  2. 传输层:TCP 协议(为 HTTP/HTTPS 提供可靠连接)。

    • 建立 TCP 三次握手:SYN → SYN-ACK → ACK
  3. 网络层:IP 协议(负责将数据包路由到目标服务器)。

    • 例如:从 192.168.1.293.184.216.34example.com 的 IP)。
  4. 网络接口层:通过网线或 Wi-Fi 传输比特流。


四、交互示例:访问 https://www.example.com

步骤 1:DNS 解析
  • 应用层 :浏览器查询 DNS(如 www.example.com → 93.184.216.34)。
步骤 2:TCP 连接
  • 传输层 :通过 TCP 三次握手建立连接。

    plaintext

    复制代码
    客户端 → 服务端:SYN
    服务端 → 客户端:SYN-ACK
    客户端 → 服务端:ACK
步骤 3:TLS 握手(HTTPS 专属)
  1. 客户端发送支持的加密算法列表。
  2. 服务端返回证书和选择的加密方式(如 TLS 1.3)。
  3. 客户端验证证书合法性,生成会话密钥并加密传输。
步骤 4:HTTP 请求/响应
  • 应用层(加密)

    http

    复制代码
    GET / HTTP/1.1
    Host: www.example.com
  • 服务端返回加密的 HTML 页面数据。


五、HTTP vs HTTPS 对比

特性 HTTP HTTPS
安全性 明文,易被窃听/篡改 加密传输,防窃听/篡改
证书 无需证书 需 CA 颁发的 SSL 证书
性能 无加密开销,更快 加密轻微增加延迟(约5%)
使用场景 非敏感信息(新闻页面) 登录、支付、API 通信

六、总结

  • HTTP 是互联网通信的基础,但在安全性上有明显缺陷。
  • HTTPS 通过 SSL/TLS 协议实现加密、身份认证和防篡改。
  • 四层协议 明确分工:应用层关注数据本身,传输层保证送达,网络层负责寻址,接口层完成物理传输。

示例交互流程图

复制代码
用户输入 URL → DNS 解析 → TCP 握手 → (HTTPS: TLS 握手) → 发送请求 → 接收响应 → 渲染页面
相关推荐
STQY燊桐启元(深圳)电子科技9 小时前
医疗精密电源散热方案:相变陶瓷片保障医疗设备长效稳定低干扰
大数据·网络·人工智能
CDN36011 小时前
节点智能调度实操:解决出海区域访问快慢不均、节点拥堵、跨洋延迟高,CDN 全网择优落地方案
运维·服务器·网络
roman_日积跬步-终至千里12 小时前
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
java·服务器·网络
可乐鸡翅yeah_14 小时前
个人 / 外包流媒体项目交付实战,M3U8 验收与问题闭环完整工作流
运维·网络·python·低代码·django·m3u8·在线播放
黄俊懿15 小时前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第十节:网关安全-单向加密
网络·数据库·计算机网络·安全·架构·系统架构·架构师
Patrick在香港15 小时前
Python 拉取城巴开放数据:406 条路线,香港岛巴士网络的数字画像
网络·python·数据分析·php·数据可视化·香港·开放数据
一直C16 小时前
Linux系统编程|进程间通信IPC全套详解(1)(管道、信号)
linux·c语言·开发语言·网络·青少年编程·visual studio code
Experience-摆渡16 小时前
自建 IP 轮换方案实战:健康探测 + 熔断剔除 + 粘性会话
网络·网络协议·tcp/ip
luj_176816 小时前
合法避税与投资评估实战指南
c语言·开发语言·网络·经验分享·算法
库玛西16 小时前
Linux网络编程:HTTP/HTTPS协议核心技术全解析
linux·运维·服务器·网络·c++·http·https