HTTP Status Code Cho Tester: Bảng Tra 2xx–5xx

HTTP Status Code Cho Tester: Bảng Tra 2xx–5xx



 


Khi test API, một trong những thứ Tester cần kiểm tra đầu tiên là HTTP Status Code.

Status Code giúp chúng ta biết request đã được xử lý như thế nào: thành công, lỗi từ phía client hay lỗi từ phía server.

Dưới đây là các HTTP Status Code Tester nên nhớ.

1. Nhóm 2xx – Success

Request được server xử lý thành công.

200 OK
Request thành công.

Tester thường gặp khi:

GET data thành công

UPDATE data thành công

API trả về response bình thường

Ví dụ:

GET /api/users/123
→ 200 OK
201 Created
Tạo resource mới thành công.

Thường dùng với:

POST

Create User

Create Booking

Create Event

Ví dụ:

POST /api/users
→ 201 Created
204 No Content
Request thành công nhưng server không trả về response body.

Thường gặp khi:

Delete thành công

Update thành công nhưng không cần trả data

DELETE /api/users/123
→ 204 No Content
👉 Tester cần kiểm tra thêm: status đúng nhưng response body không được trả về là behavior expected hay không.

2. Nhóm 3xx – Redirection

Request cần được chuyển hướng hoặc sử dụng cached data.

301 Moved Permanently
Resource đã được chuyển sang URL khác vĩnh viễn.

302 Found
Resource tạm thời được chuyển sang URL khác.

304 Not Modified
Resource chưa thay đổi nên client có thể sử dụng cached version.

👉 Với API Tester, nhóm 3xx ít gặp hơn 2xx/4xx/5xx nhưng vẫn nên biết để tránh nhầm 3xx với lỗi.

3. Nhóm 4xx – Client Error

Đây là nhóm Tester gặp rất thường xuyên.

Ý nghĩa chung: Request có vấn đề từ phía client/request gửi lên.

400 Bad Request
Request không hợp lệ.

Ví dụ:

{
  "email": "abc",
  "age": "invalid"
}
Có thể xảy ra khi:

Missing required field

Sai data type

Invalid format

Invalid request parameters

👉 Khi test API, đây là status code rất quan trọng để test validation.

401 Unauthorized
Client chưa được xác thực hoặc authentication không hợp lệ.

Ví dụ:

Không gửi token

Token expired

Token invalid

GET /api/profile
Authorization: invalid-token
→ 401 Unauthorized
👉 Nhớ đơn giản:

401 = Tôi chưa xác thực được bạn.

403 Forbidden
Server hiểu request và xác thực user nhưng không cho phép thực hiện action.

Ví dụ:

User có role:

Member
nhưng cố gắng gọi API dành cho:

Admin
→ 403 Forbidden

👉 Nhớ:

401 = Chưa xác thực

403 = Đã xác thực nhưng không có quyền

404 Not Found
Resource không tồn tại.

Ví dụ:

GET /api/users/999999
→ 404 Not Found
Có thể xảy ra khi:

ID không tồn tại

URL sai

Resource đã bị xóa

405 Method Not Allowed
HTTP method không được API hỗ trợ.

Ví dụ API chỉ cho:

POST /api/users
nhưng Tester gửi:

GET /api/users
→ 405 Method Not Allowed

👉 Đây là case Tester nên đưa vào API negative testing.

409 Conflict
Request gây conflict với trạng thái hiện tại của resource.

Ví dụ:

User đã tồn tại với email:

test@gmail.com
Tester tiếp tục tạo user với cùng email.

→ 409 Conflict

422 Unprocessable Content
Request có format hợp lệ nhưng dữ liệu không hợp lệ về mặt nghiệp vụ/validation.

Ví dụ:

{
  "age": -10
}
JSON hợp lệ nhưng giá trị không hợp lệ.

👉 Một số framework/API sử dụng 400 thay cho 422, vì vậy Tester nên kiểm tra theo API specification của project.

429 Too Many Requests
Client gửi quá nhiều request trong một khoảng thời gian.

Ví dụ:

100 requests / 1 minute
nhưng API chỉ cho phép:

10 requests / 1 minute
→ 429 Too Many Requests

👉 Rất quan trọng khi test:

Rate limiting

Load testing

Performance testing

Brute-force protection

4. Nhóm 5xx – Server Error

Nhóm này thường cho biết vấn đề xảy ra phía server.

500 Internal Server Error
Server gặp lỗi không xác định khi xử lý request.

Ví dụ:

POST /api/booking
→ 500 Internal Server Error
👉 Tester nên kiểm tra:

Request data

Response body

Server logs

Database

Related API

501 Not Implemented
Server chưa hỗ trợ functionality được yêu cầu.

Ví dụ client gọi một API mà backend chưa implement.

502 Bad Gateway
Server đóng vai trò gateway/proxy nhưng nhận response không hợp lệ từ upstream server.

Có thể gặp trong hệ thống có:

Client
   ↓
API Gateway
   ↓
Backend Service
503 Service Unavailable
Server hiện không thể xử lý request.

Có thể xảy ra khi:

Server đang down

Service quá tải

Maintenance

Dependency service unavailable

504 Gateway Timeout
Gateway/proxy không nhận được response kịp thời từ upstream server.

Ví dụ:

Client
 ↓
API Gateway
 ↓
Backend
 ↓
Database
Backend xử lý quá lâu → Gateway timeout.

5. Tester Nên Nhớ Những Code Nào?

Không cần học thuộc tất cả.

Nếu bạn mới bắt đầu API Testing, hãy ưu tiên:

200 → Success
201 → Created
204 → Success, No Content
400 → Bad Request
401 → Authentication issue
403 → Permission issue
404 → Resource not found
405 → Method not allowed
409 → Conflict
422 → Validation/semantic error
429 → Too many requests
500 → Server error
502 → Bad Gateway
503 → Service unavailable
504 → Gateway timeout
6. Một Tip Quan Trọng Cho Tester
Đừng chỉ kiểm tra Status Code.

Ví dụ API trả:

200 OK
không có nghĩa API chắc chắn đúng.

Tester nên kiểm tra ít nhất:

1. Status Code

Expected: 200
Actual: 200
2. Response Body

Data có đúng không?

3. Response Schema

Field có đúng type và structure không?

4. Business Logic

API có thực hiện đúng nghiệp vụ không?

5. Database

Data có được lưu/update/delete đúng không?

6. Error Handling

Khi gửi invalid data, API có trả lỗi phù hợp không?

Kết luận

HTTP Status Code là kiến thức nền tảng mà Tester làm API nên nắm.

Thay vì học thuộc tất cả mã, hãy nhớ theo nhóm:

2xx → Thành công

3xx → Redirect / Cache

4xx → Request/Client có vấn đề

5xx → Server có vấn đề

Khi test API, hãy tập thói quen đặt câu hỏi:

Status Code có đúng không? Response có đúng không? Và quan trọng nhất: Business Logic có đúng không?

Đó mới là cách sử dụng HTTP Status Code hiệu quả trong công việc Testing.

Đăng nhận xét

Mới hơn Cũ hơn