+1

HTTP Status Code - Hiểu nhanh , nhớ lâu, dễ nuốt

Lời mở đầu

Trong lúc học Spring Boot, mình thường xuyên phải test API bằng Postman, Swagger,… Và thế là ngày nào cũng gặp mấy con số như 200, 404, 401, 500….

Lúc đầu thì thấy quen quen, nhưng mỗi khi cần giải thích lại hoặc dùng cho đúng ngữ cảnh thì lại hay bị lẫn.

Vì vậy mình viết bài này như một cuốn sổ tay cá nhân:

Vừa học

Vừa ghi lại cho nhớ

Sau này cần thì mở ra xem

Nếu bạn cũng đang học backend hoặc làm API giống mình, hy vọng bài viết này giúp bạn hiểu rõ hơn mấy “con số khó ưa” này 😄

1. HTTP Status Code là gì??

Hiểu đơn giản thì HTTP Status Code là cách server trả lời cho client biết "request mày gửi lên thì tao xử lý như này nài"

Mỗi request gửi đi, server sẽ trả về

  • Một mã số
  • Kèm theo ý nghĩa của nó

Chỉ cần nhìn mã đó là biết

  • Thành công hay không
  • Sai do mình hay do server
  • Có cần đăng nhập/ phân quyền hay không
  1. Chia nhóm cho dễ nhét vào não 😃

HTTP Status Code được chia thành 5 nhóm (ae nhìn đầu là đoán được vấn đề)

Nhóm Ý nghĩa
1xx Server đã nhận, đang xử lý
2xx Thành công
3xx Chuyển hướng
4xx Lỗi phía client
5xx Lỗi phía server

3. Nhóm 2xx - thành công

200 - OK

Request chạy ổn, dữ liệu trả về đầy đủ. Thường khi gọi API GET

201 - Created

Tạo mới thành công Thường dùng khi

  • Đăng ký tài khoản
  • Tạo user, product, post,...

204 - No Content

Request thành công nhưng không trả về dữ liệu

Hay dùng khi

  • Xoá dữ liệu
  • Update nhưng không cần response body

4. Nhóm 3xx - chuyển hướng

301 - Moved Permanently

Chuyển hướng vĩnh viễn Thường gặp trong SEO hoặc đổi domain

302 - Found

Chuyển hướng tạm thời

304 - Not Modified

Dùng cho cache Nói nôm na la: "Dữ liệu không đổi, mày dùng lại cái cũ đi cho nhanh"

5. Nhóm 4xx - Lỗi do phái Client

Nhóm này gặp nhiều nhất khi code API

400 - Bad requets

Request gửi lên sai format hoặc thiếu trường

401 - Unauthorized

Chưa đăng nhập, thiếu token

403 - ForBidden

Đã đăng nhập, nhưng ko có đủ quyền

404 - Not found

Không tìm thấy resource (quen luôn r -gặp suốt 😃)

409 - Conflict

Xung đột giữ liệu ví dụ:

  • email tồn tại
  • username bị trùng

429 - To many requests

Gửi request quá nhiều -> bị chặn

6. Nhóm 5xx - Lỗi từ server

Nhóm này thường là server tự bán vào chân mình

500 - Internal server error

Code bug, exception , lỗi logic

502 - bad gateway

Gateway nhận response lỗi từ server phía sau

503 - service unavaiable

Server đang quá tải hoặc bảo trì

504 - gateway timeout

Server phía sau không phản hồi kịp

7. Bảng tổng hợp nhanh (để tra đỡ mệt 😉)

Bảng Ý nghĩa
200 OK
201 Created
204 Request thành công nhưng không trả về dữ liệu
301 Chuyển hướng vĩnh viễn
302 Chuyển hướng tạm thời
304 "Dữ liệu không đổi, mày dùng lại cái cũ đi cho nhanh"
400 Request gửi lên sai format hoặc thiếu trường
401 Chưa đăng nhập, thiếu token
403 Đã đăng nhập, nhưng ko có đủ quyền
404 Không tìm thấy resource (quen luôn r -gặp suốt 😃)
409 Xung đột giữ liệu
429 Gửi request quá nhiều -> bị chặn
500 Code bug, exception , lỗi logic
502 Gateway nhận response lỗi từ server phía sau
503 Server đang quá tải hoặc bảo trì
504 Server phía sau không phản hồi kịp

8. Kết thúc

HTTP Status Code nhìn thì toàn số, nhưng hiểu được rồi thì thấy cũng cũng

Dùng đúng status

  • API nhìn chuyên nghiệp hơn
  • Debug đỡ đau đầu
  • Người khác đọc code cũng hiểu hơn

Bài này mình viết trong lúc học, chắc chắn còn nhiều thiếu sót

Nếu có sai hoặc chưa chuẩn, mong được góp ý thêm để mình sửa và học tốt hơn


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí