首页 / 知识库 / 0基础入门-阅读资料 / 0基础-网络协议入门

网络协议入门教程 —— 写给零基础同学

适用对象:AI 应用开发课程学生,无计算机网络基础

学习目标:理解网络通信的基本原理,掌握 TCP 和 HTTP 协议的核心概念,能在后续的 AI 应用开发中知其所以然。


一、为什么要学网络协议?

1.1 从日常场景说起

  • 你在浏览器输入网址,页面是怎么出现的?
  • 你调用 ChatGPT API,请求是怎么发出去、结果又怎么回来的?
  • 你的 AI 应用部署到服务器后,用户是怎么访问到的?

1.2 协议是什么

  • 类比:协议就像”通信双方的约定”——就像寄快递要填地址、贴单号一样
  • 网络协议 = 计算机之间”说话的规矩”

1.3 与 AI 应用开发的关系

  • 调用大模型 API(如 OpenAI、百度文心)本质上就是发 HTTP 请求
  • 理解协议 → 能看懂报错、会调试接口、能优化性能

二、网络分层模型(只讲你需要的)

2.1 快递类比理解分层

层级快递类比网络对应关心的事
应用层包裹里的物品(信的内容)HTTP传什么数据
传输层快递单号 + 签收确认TCP数据可靠送达
网络层地址 + 路线规划IP数据往哪走
链路层快递员 + 运输车辆以太网/Wi-Fi数据怎么物理传输

2.2 本教程聚焦

  • TCP(传输层)—— 保证数据可靠传输
  • HTTP(应用层)—— 定义数据的内容和格式

记住一句话:HTTP 负责”说什么”,TCP 负责”说到、说全”。


三、TCP 协议:可靠的传输管道

3.1 TCP 是什么

  • 全称:Transmission Control Protocol(传输控制协议)
  • 核心能力:保证数据完整、有序、不丢失地从 A 到达 B

3.2 关键概念:端口

  • IP 地址 = 一栋楼的门牌号
  • 端口 = 楼里的房间号
  • 举例:192.168.1.100:80808080 就是端口
  • 常见端口:HTTP → 80,HTTPS → 443

3.3 三次握手(建立连接)

客户端                          服务器
  │                               │
  │ ──── ① SYN(你好,能听到吗?)────→ │
  │                               │
  │ ←── ② SYN+ACK(听到了,你呢?)── │
  │                               │
  │ ──── ③ ACK(我也听到了,开聊!)──→ │
  │                               │
  │        连接建立,开始传输数据       │
  • 为什么要三次?—— 双方都要确认”我能发、对方能收”

3.4 数据传输:确认与重传

  • 发一段数据 → 等对方确认 → 没收到确认就重发
  • 类比:微信发消息看到”已读”才放心,没已读就再发一遍

3.5 四次挥手(断开连接)

客户端                          服务器
  │                               │
  │ ──── ① FIN(我说完了)──────→    │
  │ ←── ② ACK(知道了)──────       │
  │ ←── ③ FIN(我也说完了)───       │
  │ ──── ④ ACK(好的,再见)────→    │
  │                               │
  │          连接关闭                │

3.6 小结

  • TCP 像打电话:先拨号接通,通话,然后挂断
  • 可靠但有开销(建立/断开连接需要时间)

四、HTTP 协议:应用层的通用语言

4.1 HTTP 是什么

  • 全称:HyperText Transfer Protocol(超文本传输协议)
  • 浏览器和服务器之间通信的标准协议
  • 调用 API 的本质就是发 HTTP 请求

4.2 HTTP 请求的结构

┌─────────────────────────────────────────────┐
│  请求行:   POST /v1/chat/completions HTTP/1.1 │
├─────────────────────────────────────────────┤
│  请求头:   Host: api.openai.com               │
│            Authorization: Bearer sk-xxx...    │
│            Content-Type: application/json     │
├─────────────────────────────────────────────┤
│  请求体:   {"model":"gpt-4","messages":[...]} │
└─────────────────────────────────────────────┘

三大组成部分:

  1. 请求行:方法 + 路径 + 协议版本
  2. 请求头(Headers):附加信息(身份、数据格式等)
  3. 请求体(Body):要发送的数据

4.3 常用请求方法

方法含义类比常见场景
GET获取数据去图书馆借书打开网页、查询信息
POST提交数据去邮局寄包裹登录、调用 AI API
PUT更新数据把旧书换成新版修改用户资料
DELETE删除数据把书还回去删除一条记录

AI 应用开发中最常用的是 GETPOST

4.4 HTTP 响应的结构

┌─────────────────────────────────────────────────┐
│  状态行:   HTTP/1.1 200 OK                        │
├─────────────────────────────────────────────────┤
│  响应头:   Content-Type: application/json          │
│            X-Request-Id: abc123                    │
├─────────────────────────────────────────────────┤
│  响应体:   {"choices":[{"message":{"content":...}}]}│
└─────────────────────────────────────────────────┘

4.5 必须记住的状态码

状态码含义你会遇到的场景
200成功API 调用成功
400请求有误参数传错了
401未授权API Key 错误或过期
403禁止访问没有权限
404找不到URL 路径写错了
429请求太多API 调用超过速率限制
500服务器内部错误服务端挂了

遇到报错先看状态码,80% 的问题能快速定位。

4.6 HTTP vs HTTPS

  • HTTPS = HTTP + SSL/TLS 加密
  • 类比:HTTP 是明信片(内容裸奔),HTTPS 是密封信(加密传输)
  • 现在几乎所有 API 都使用 HTTPS

五、实战串联:调用 AI API 时发生了什么?

5.1 完整流程图

你的 Python 代码


  构造 HTTP 请求(POST + JSON body)


  TCP 三次握手,建立连接


  通过 TCP 连接发送 HTTP 请求


  服务器处理请求(大模型生成回答)


  通过 TCP 连接返回 HTTP 响应(状态码 + JSON body)


  TCP 四次挥手,断开连接


  你的代码解析响应,拿到 AI 的回答

5.2 用 Python 代码感受一下

import requests

# 这就是一个 HTTP POST 请求
response = requests.post(
    url="https://api.openai.com/v1/chat/completions",  # 请求地址
    headers={
        "Authorization": "Bearer sk-你的密钥",           # 请求头:身份认证
        "Content-Type": "application/json"               # 请求头:数据格式
    },
    json={                                                # 请求体:JSON 数据
        "model": "gpt-4",
        "messages": [{"role": "user", "content": "你好"}]
    }
)

print(response.status_code)  # 状态码,如 200
print(response.json())       # 响应体,AI 的回答

5.3 常见问题排查

现象可能原因涉及层级
连接超时网络不通 / 服务器没开TCP 层
连接被拒绝端口没开 / 防火墙拦截TCP 层
返回 401API Key 错误HTTP 层
返回 429调用太频繁HTTP 层
返回乱码编码/格式不对HTTP 层

六、补充知识(选学)

6.1 JSON —— HTTP 的”普通话”

  • AI API 几乎都用 JSON 格式传输数据
  • 长这样:{"key": "value", "list": [1, 2, 3]}
  • Python 中用 json 模块或 requests 库轻松处理

6.2 流式响应(Streaming)

  • ChatGPT 打字效果的秘密:服务器”边生成边发送”
  • 底层使用 SSE(Server-Sent Events)或 chunked transfer
  • 本质上还是 HTTP,只是响应体分块传输

6.3 WebSocket 简介

  • HTTP 是”一问一答”模式
  • WebSocket 是”双向持续对话”模式
  • 部分实时 AI 应用会用到(如语音对话)

七、总结速查表

网络协议速记卡片
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

TCP(传输层)
  ✦ 作用:可靠传输数据
  ✦ 三次握手建立连接
  ✦ 四次挥手断开连接
  ✦ 保证数据完整、有序

HTTP(应用层,基于 TCP)
  ✦ 请求 = 请求行 + 请求头 + 请求体
  ✦ 响应 = 状态行 + 响应头 + 响应体
  ✦ 常用方法:GET(查)、POST(增/调用)
  ✦ 关键状态码:200 成功 / 4xx 你的错 / 5xx 服务器的错

调用 AI API = 发 HTTP POST 请求
  ✦ URL → API 地址
  ✦ Headers → API Key + Content-Type
  ✦ Body → JSON 格式的提示词
  ✦ Response → JSON 格式的 AI 回答

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

八、推荐动手练习

  1. 浏览器开发者工具:打开任意网页 → F12 → Network 标签 → 观察 HTTP 请求和响应
  2. 用 curl 发请求:在终端执行 curl -v https://httpbin.org/get,观察完整的请求/响应过程
  3. 用 Python requests 调用一个公开 API:如天气 API、笑话 API,体会请求和响应的结构
  4. 故意制造错误:传错 API Key 看 401、访问不存在的路径看 404,建立对状态码的直觉

记住:网络协议不需要死记硬背,理解核心原理 + 遇到问题知道去哪查就够了。在后续的 AI 应用开发中,你会不断加深对这些概念的理解。