HTTP
中级通用
HTTP 是浏览器、App 与服务器交换请求和响应时使用的通信协议。它让双方知道要访问什么资源、执行什么操作,以及请求得到什么结果;比如打开商品页时,浏览器会发出 HTTP 请求并接收页面内容。
你可能会说:「我想让网页从服务器取商品列表,还想知道加载失败时该怎么判断原因。」
读之前建议先了解
动手看看打开搬家的商品页
1
你点击商品链接后,浏览器发出 HTTP 请求:用 GET 方法告诉服务器,想读取这个地址的商品页。
要点一次 HTTP 交互是怎么完成的?
- 1
客户端先发出请求
你打开商品页时,浏览器会向服务器发送请求,说明访问哪个地址、想做什么操作。App 调用后端接口也是类似过程。因为请求里带着这些信息,服务器才知道该返回哪份内容。
- 2
服务器再返回响应
服务器处理请求后会给出响应,里面有状态码,也可能有页面、图片或 JSON 数据。比如商品不存在时,你可以先看状态码,再看响应内容,而不是只凭页面上有没有显示商品判断。
- 3
标头和正文承载不同信息
请求和响应都可以带标头,正文则按需携带实际内容。提交订单时,请求正文可能放订单数据;接收商品列表时,响应正文可能放 JSON。这样我们能分清数据本身和描述数据的信息。
容易混淆的地方
HTTP 约定请求和响应怎么表达;HTTPS 是通过加密连接使用 HTTP,适合传输登录信息等内容。WebSocket 更适合连接建立后双方持续互发消息,比如多人协作编辑;普通的页面加载和接口调用,通常用 HTTP 请求与响应就够了。
什么时候用
适合用
- 做商品列表页,需要让前端向后端取数据,并根据响应显示列表或错误提示。
- 开发登录或提交订单功能,需要把用户输入发给服务器,再处理服务器返回的结果。
- 排查接口故障时,查看请求地址、请求内容、状态码和响应内容,定位问题发生在哪一步。
不适合用
- 只是对已经加载到页面上的商品排序,可以在前端处理,不必为每次排序发 HTTP 请求。
- 多人协作编辑需要双方持续、及时地互发更新时,可以考虑 WebSocket,而不是反复轮询 HTTP 接口。
- 同一个程序内部的两个函数要交换数据时,直接传参或调用函数就好,不需要引入网络请求。
练一练选一个答案,看看解释
你做的商品页显示“加载失败”。AI Agent 说已经向接口发出请求,但页面没有商品。你想先判断是服务器拒绝了请求,还是返回的数据没有被正确展示。下一步看什么最有帮助?
让 AI 帮你做复制给 AI Agent 直接用
请为商品列表页接入后端接口,使用 HTTP 请求获取数据。明确请求地址和方法,检查响应状态码,成功时解析返回的 JSON 并展示商品;失败时显示可理解的提示,并说明我能在哪里查看请求与响应来排查问题。