跳到正文

HTTP

中级通用

HTTP 是浏览器、App 与服务器交换请求和响应时使用的通信协议。它让双方知道要访问什么资源、执行什么操作,以及请求得到什么结果;比如打开商品页时,浏览器会发出 HTTP 请求并接收页面内容。

你可能会说:「我想让网页从服务器取商品列表,还想知道加载失败时该怎么判断原因。」

读之前建议先了解

动手看看

GET 请求浏览器商品服务器
1

你点击商品链接后,浏览器发出 HTTP 请求:用 GET 方法告诉服务器,想读取这个地址的商品页。

要点

  1. 1

    客户端先发出请求

    你打开商品页时,浏览器会向服务器发送请求,说明访问哪个地址、想做什么操作。App 调用后端接口也是类似过程。因为请求里带着这些信息,服务器才知道该返回哪份内容。

  2. 2

    服务器再返回响应

    服务器处理请求后会给出响应,里面有状态码,也可能有页面、图片或 JSON 数据。比如商品不存在时,你可以先看状态码,再看响应内容,而不是只凭页面上有没有显示商品判断。

  3. 3

    标头和正文承载不同信息

    请求和响应都可以带标头,正文则按需携带实际内容。提交订单时,请求正文可能放订单数据;接收商品列表时,响应正文可能放 JSON。这样我们能分清数据本身和描述数据的信息。

容易混淆的地方

HTTP 约定请求和响应怎么表达;HTTPS 是通过加密连接使用 HTTP,适合传输登录信息等内容。WebSocket 更适合连接建立后双方持续互发消息,比如多人协作编辑;普通的页面加载和接口调用,通常用 HTTP 请求与响应就够了。

什么时候用

适合用

  • 做商品列表页,需要让前端向后端取数据,并根据响应显示列表或错误提示。
  • 开发登录或提交订单功能,需要把用户输入发给服务器,再处理服务器返回的结果。
  • 排查接口故障时,查看请求地址、请求内容、状态码和响应内容,定位问题发生在哪一步。

不适合用

  • 只是对已经加载到页面上的商品排序,可以在前端处理,不必为每次排序发 HTTP 请求。
  • 多人协作编辑需要双方持续、及时地互发更新时,可以考虑 WebSocket,而不是反复轮询 HTTP 接口。
  • 同一个程序内部的两个函数要交换数据时,直接传参或调用函数就好,不需要引入网络请求。

练一练

你做的商品页显示“加载失败”。AI Agent 说已经向接口发出请求,但页面没有商品。你想先判断是服务器拒绝了请求,还是返回的数据没有被正确展示。下一步看什么最有帮助?

让 AI 帮你做

请为商品列表页接入后端接口,使用 HTTP 请求获取数据。明确请求地址和方法,检查响应状态码,成功时解析返回的 JSON 并展示商品;失败时显示可理解的提示,并说明我能在哪里查看请求与响应来排查问题。

接下来学什么