Skip to content

什么是 HTTP

HTTP(HyperText Transfer Protocol,超文本传输协议) 是互联网上使用最广泛的“请求-响应”协议:客户端(你的模组、浏览器、手机 App)发一个请求,服务器返回一个响应。网页浏览、天气查询、设备上报数据,绝大多数都是通过 HTTP 完成的。

HTTP 的特点是文本协议——请求和响应都是人能读懂的文本行,格式固定、易于调试。它本身不加密,明文传输;需要加密时使用 HTTPS(HTTP + TLS/SSL,见 HTTPS 页面)。

请求(Request)

一次 HTTP 请求由三部分组成:

请求行:方法 + 空格 + URL + 空格 + 协议版本,例如:

text
GET /index.html HTTP/1.1

请求头(Headers):每行一个“键: 值”,告诉服务器额外信息,例如:

text
Host: www.gov.cn
User-Agent: Ai-M62
Content-Type: application/json

请求体(Body):可选。GET 通常没有请求体,POST/PUT 用它携带要提交的数据(如表单、JSON)。

响应(Response)

服务器返回的响应同样由三部分组成:

状态行:协议版本 + 空格 + 状态码 + 空格 + 原因短语,例如:

text
HTTP/1.1 200 OK

响应头:格式与请求头相同,例如 Content-Type(内容类型)、Content-Length(内容长度)。

响应体:服务器返回的实际内容(网页 HTML、JSON 数据、图片等)。

常用方法

方法含义典型用途
GET获取资源请求网页、查询天气、读取设备状态;参数放在 URL 里
POST提交数据新增资源:登录、上报数据、发布消息;数据放请求体
PUT整体更新把某个资源整体替换成请求体里的内容
DELETE删除资源删除服务器上的指定资源

对应教程:GETPOSTPUTDELETE

常见状态码

状态码含义说明
200OK请求成功
201Created创建成功(常见于 POST)
301/302重定向资源换地址了,客户端应跟随跳转
400Bad Request请求格式错误
401Unauthorized未认证/未登录
403Forbidden没有权限
404Not Found资源不存在
500Internal Server Error服务器内部错误

与 SDK 例程的关系

博流 SDK 的 examples/wifi/sta/wifi_http 例程演示了在模组上发起 HTTP 请求:烧录后先连接 Wi-Fi,再在串口 shell 输入 wifi_http_test <url>,例程用 https_client 组件发送请求,并通过回调(response_cb)接收和打印服务器返回的内容。

  • 例程内部先把域名解析成 IP(gethostbyname),再建立 TCP 连接(80 端口)、发送 HTTP 文本、按回调接收响应;
  • 本页四个方法页(GET/POST/PUT/DELETE)都以该例程为基础,完整代码与 API 说明见对应页面;
  • HTTPS(加密版 HTTP)见 HTTPS 页面,对应 SDK 例程 examples/wifi/sta/wifi_https

小结

  • HTTP 是文本格式的请求-响应协议:客户端发“方法 + URL + 头 + 体”,服务器回“状态码 + 头 + 体”;
  • GET 取数据、POST 提交数据、PUT 整体更新、DELETE 删除;
  • 状态码 2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务器错误;
  • 在模组上跑 HTTP 前,先确保设备已连上 Wi-Fi(wifi_sta_connect <ssid> <password>)。

遇到问题?

如有其他问题,请到统一的提问与讨论区:Ai-Thinker Discussions

Released under the MIT License. Build Time 2026-09-11 14:52:23