1、http介绍

news/2025/2/9 5:30:28 标签: 网络

一、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.2 到 93.184.216.34(example.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 对比

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

六、总结

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

示例交互流程图

用户输入 URL → DNS 解析 → TCP 握手 → (HTTPS: TLS 握手) → 发送请求 → 接收响应 → 渲染页面

http://www.niftyadmin.cn/n/5845561.html

相关文章

SQLite3实战教程:从入门到精通

SQLite是一个轻量级的关系型数据库,广泛应用于移动应用和小型Web应用。本教程将带您深入了解SQLite3,学习如何在Django项目中使用它,并掌握相关的数据库管理命令。 1. SQLite3基础 1.1 什么是SQLite? SQLite是一个嵌入式关系型数据库引擎,具有以下特点: 无需单独的服务器进…

[oeasy]python064_命令行工作流的总结_vim_shell_python

064_命令行工作流的总结_vim_shell_python 命令行工作流的总结_vim_shell_python 回忆上次内容 上次 写代码完成了 输入和输出 关于vim 又练了一回 添加图片注释,不超过 140 字(可选) 对于vim和shell 我们 要好好总结一下 以后 就不会 …

国产高端双光子成像系统的自主突破

近年来,高端科研仪器的国产化受到越来越多的关注。在双光子成像系统这一关键领域,我们基于LabVIEW自主开发了一套完整的解决方案,不仅填补了国内空白,也在功能和性能上达到了国际领先水平。我们的目标是让国内科研机构和医疗行业拥…

Visual Studio 进行单元测试【入门】

摘要:在软件开发中,单元测试是一种重要的实践,通过验证代码的正确性,帮助开发者提高代码质量。本文将介绍如何在VisualStudio中进行单元测试,包括创建测试项目、编写测试代码、运行测试以及查看结果。 1. 什么是单元测…

人工智能应用实例-自动驾驶A*算法高级应用

A* 算法是一种经典的路径规划算法,在人工智能自动驾驶领域有诸多高级应用,以下为你详细介绍: 复杂环境下的路径规划 多障碍物与动态障碍物处理:在现实道路场景中,存在着大量的静态障碍物(如建筑物、交通隔离栏)和动态障碍物(如其他行驶的车辆、行人)。A* 算法可以通过…

uniapp 编译生成鸿蒙正式app步骤

1,在最新版本DevEco-Studio工具新建一个空项目并生成p12和csr文件(构建-生成私钥和证书请求文件) 2,华为开发者平台 根据上面生成的csr文件新增cer和p7b文件,分发布和测试 3,在最新版本DevEco-Studio工具 文…

什么是DDOS网络攻击?

什么是DDoS攻击? DDoS(Distributed Denial of Service,分布式拒绝服务)攻击是一种网络攻击手段,通过大量合法或恶意请求占用目标服务器、网络或资源,使其无法正常为用户提供服务。 DDoS攻击原理 攻击者利…

docker compose 文件详解

在平常的开发工作中,我们经常需要部署项目,一个项目开发完成后,部署环境先编写 Dockerfile 文件,编写完成后使用 docker build -t 构造镜像,接下来就可以启动容器,可以直接用docker run 后面接一堆指令启…