HTTP request/response cơ bản | Đọc Network tab trước khi học status code

(Cập nhật: 19 tháng 7, 2026 ) HTTP request response Network tab API DevTools frontend backend
Kết luận

HTTP là một cặp request → response, không phải chỉ mã số trên cột Status. Junior và freelancer nên đọc method + URL + header + body trước khi mở cheat sheet 4xx/5xx. Status trả lời “nhóm lỗi nào”; exchange đầy đủ trả lời “sửa chỗ nào”. Khi đã nắm request/response, dùng HTTP status code cheat sheet để phân nhánh nhanh.

Ticket kiểu “API lỗi rồi” thường kèm screenshot một chữ đỏ hoặc chỉ số 500. Người mới mở ngay danh sách status code — trong khi DevTools đã hiện sẵn URL sai môi trường, thiếu Authorization, hoặc JSON body thiếu field. Bài này dạy đọc request/response — tầng nền trước cheat sheet mã trạng thái.

Ai nên bookmark

  • Sinh viên lần đầu gọi fetch / Axios
  • Freelancer hỗ trợ khách SME: “Postman được, web không”
  • Frontend nhận API từ team outsourcing khác timezone — cần mô tả lỗi rõ trong chat

Sau bài này bạn biết: cấu trúc một exchange, cách đọc Network tab, checklist 5 phút, và khi nào mới cần bảng status code.


HTTP một câu, rồi bung chi tiết

Client (trình duyệt, app mobile, Postman) gửi request. Server (API, CDN, gateway) trả response. Mỗi lần bạn bấm “Đăng nhập” hoặc load danh sách user, thường có ít nhất một cặp như vậy (đôi khi kèm redirect, preflight CORS — vẫn là HTTP).

Không cần thuộc RFC ngay. Cần thuộc bản đồ:

REQUEST                          RESPONSE
─────────                        ──────────
Method + URL                     Status line (vd. 200 OK)
Request headers                  Response headers
Body (nếu có)                    Body (JSON / HTML / rỗng)

Status code nằm ở dòng đầu response. Nó quan trọng — nhưng chỉ sau khi bạn biết request đã gửi gì.


Giải phẫu request

1. Method

MethodÝ định phổ biếnBody?
GETĐọc / liệt kêThường không
POSTTạo / submitThường có
PUT/PATCHCập nhậtThường có
DELETEXóaTùy API

Freelance hay gặp: docs viết POST /api/orders nhưng code gọi GET → 404 hoặc 405. Đó là lỗi method + URL, không phải “server hỏng”.

2. URL = scheme + host + path + query

Ví dụ:

https://api.khach.vn/v1/users?page=2&limit=20

  • https = scheme
  • api.khach.vn = host
  • /v1/users = path
  • page=2&limit=20 = query

Nhầm staging/prod (api-staging vs api) là nguyên nhân 401/404 kinh điển hơn “bug React”.

3. Headers

Header là metadata dạng Tên: giá trị. Hay nhìn khi debug:

Header (request)Ý nghĩa nhanh
AuthorizationBearer token / API key — thiếu → thường 401
Content-Typeapplication/json vs x-www-form-urlencoded
AcceptClient muốn nhận JSON / HTML…
CookieSession trình duyệt
OriginOrigin trang gọi API (CORS)

4. Body

JSON điển hình:

{ "email": "[email protected]", "password": "***" }

Checklist body trước khi hỏi backend:

  • JSON parse được không (thiếu dấu phẩy, nháy lệch)?
  • Field bắt buộc có đủ theo docs không?
  • Có gửi nhầm FormData khi API chỉ nhận JSON không?

Giải phẫu response

Status line

Ví dụ: HTTP/1.1 201 Created hoặc trong DevTools chỉ thấy cột 201.

Nhóm thô (đủ cho bước nền):

NhómÝViệc tiếp theo
2xxThành côngVẫn đọc body — 200 có thể mảng rỗng
3xxRedirectXem Location, bật Preserve log
4xxClient/requestSửa URL, method, auth, body
5xxServer/upstreamThu thập log, không “sửa UI cho xong”

Chi tiết từng mã (401 vs 403, 502 vs 503…) nằm ở cheat sheet status code — đọc sau khi đã copy được exchange.

Response headers hữu ích

  • Content-Type: application/json — body nên parse JSON
  • WWW-Authenticate — gợi ý cơ chế auth
  • Retry-After — với 429/503
  • Set-Cookie — login vừa set session

Response body

Nhiều API trả:

{
  "error": "VALIDATION_ERROR",
  "message": "email is required",
  "requestId": "req_9f3a"
}

Freelance nên gửi khách/backend: method, URL, status, requestId, message (che mật khẩu/PII). Chỉ gửi “bị 400” làm mất nửa buổi.


Đọc Network tab như checklist

  1. Filter Fetch/XHR để ẩn CSS/font.
  2. Chọn đúng hàng — timestamp khớp lúc bấm nút.
  3. Tab Headers → General: Request URL, Method, Status Code.
  4. Request Headers + Payload: đối chiếu docs.
  5. Response: copy body lỗi.
  6. Nếu thấy redirect chuỗi: bật Preserve log, xem request đầu và cuối.
Triệu chứng → nhìn phần nào của exchange trước
Triệu chứng Nhìn request Nhìn response
Postman OK, web fail Origin, Cookie, CORS preflight OPTIONS Header Access-Control-* hoặc lỗi CORS trên console
401 hàng loạt Authorization có gửi? token hết hạn? Body auth error; WWW-Authenticate
UI trống nhưng không đỏ URL/query đúng resource? 200 với [] hoặc null — không phải status lỗi
Sau deploy khách báo lỗi Host đúng env? version /v1? 502/503 + body gateway; thu thập thời điểm

Case study 1 — Freelance: “API chết” hóa ra sai method

Khách gửi ảnh: status 404. Support mới hỏi “server down?”. Mở Network: GET https://api.khach.vn/orders. Docs: POST /orders với body { "sku": "..." }.

Sửa method + body → 201. Không cần tra sâu bảng status: request không khớp contract.

Bài học: ghi method + path vào ticket trước khi nói “404”.

Case study 2 — Sinh viên: 200 nhưng “không có data”

Bài tập gọi GET /api/me. Status 200, UI vẫn “Chưa đăng nhập”. Response body: { "user": null } vì thiếu cookie session (gọi từ file HTML file:// hoặc quên credentials: 'include').

Status không báo lỗi. Đọc body + cookie request mới thấy. Đây là lý do bài này đặt request/response trước cheat sheet 4xx/5xx.


HTTP trên wire vs “thấy trong app”

Cách xemGiới hạn
DevTools NetworkĐúng nhất cho web app; thấy CORS, cookie, redirect
Postman / InsomniaKhông enforce CORS trình duyệt; dễ “ảo giác API ổn”
curlTốt để tái hiện header; nhớ gắn Origin nếu debug CORS
Log serverThấy request đã tới chưa — cần requestId khớp

Outsourcing Việt Nam hay làm việc remote: thống nhất template báo lỗi (method, URL, status, 5–10 dòng body, requestId) giảm round-trip với khách nước ngoài.


Liên hệ CORS và HTTPS (chỉ đủ để định hướng)

  • CORS là chính sách trình duyệt trên response (và preflight OPTIONS) — không phải “lỗi JSON”. Khi local khác port, đọc thêm CORS trên localhost.
  • HTTPS mã hóa kênh; status/body vẫn đọc được trong DevTools trên máy bạn. Hết hạn chứng chỉ là lỗi tầng TLS — request có thể không tới app.

Không nhét DNS/SSL checklist vào đây: góc bài là request/response basics.


Khi nào mở cheat sheet status code

Mở HTTP status code 4xx/5xx khi bạn đã có:

  • Method + URL đầy đủ
  • Biết body/header request đã gửi
  • Cần phân nhánh: 401 vs 403, 400 vs 422, 502 vs 503

Thứ tự học hiệu quả:

  1. Đọc exchange (bài này)
  2. Phân nhóm 2xx/4xx/5xx
  3. Chi tiết từng mã hay gặp
  4. Tool phụ: JSON formatter để đọc body, JWT decode khi debug 401 — tùy tình huống

Checklist in ra giấy / note

  • Đúng request (không nhầm analytics)
  • Method khớp docs
  • Host/path đúng môi trường
  • Auth header/cookie có mặt
  • Content-Type khớp body
  • Status + 5 dòng body (che PII) đã copy
  • Mới tra ý nghĩa status / escalate

Tóm tắt mang đi

  1. HTTP = request + response; status chỉ là một dòng của response.
  2. Method, URL, header, body giải thích hầu hết “lỗi API” trước khi thuộc RFC.
  3. Network tab là nguồn sự thật cho web; Postman không thay được CORS.
  4. Ticket hay = exchange đầy đủ, không chỉ một số.
  5. Sau khi đọc được exchange → cheat sheet status code.

Bookmark nếu bạn thường bị hỏi “lỗi gì?” mà mới chỉ biết trả lời một mã số.