Hiểu Về HTTP Status Codes: Hướng Dẫn Đầy Đủ
Mỗi lần trình duyệt của bạn giao tiếp với máy chủ web, máy chủ trả về một HTTP status code. Những con số ba chữ số này cho trình duyệt biết yêu cầu thành công, được chuyển hướng hay gặp lỗi. Hiểu các status code này rất quan trọng đối với lập trình viên web, chuyên gia SEO và bất kỳ ai quản lý trang web.
Cách Tổ Chức HTTP Status Codes
HTTP status codes được tổ chức thành năm loại dựa trên chữ số đầu tiên. Mỗi loại đại diện cho một danh mục phản hồi, giúp bạn nhanh chóng xác định bản chất của phản hồi từ máy chủ.
| Danh Mục | Phân Loại | Ý Nghĩa |
|---|---|---|
| 1xx | Thông Tin | Đã nhận yêu cầu, tiếp tục xử lý |
| 2xx | Thành Công | Yêu cầu đã được nhận và xử lý thành công |
| 3xx | Chuyển Hướng | Cần hành động bổ sung để hoàn thành yêu cầu |
| 4xx | Lỗi Client | Yêu cầu chứa lỗi cú pháp hoặc không thể hoàn thành |
| 5xx | Lỗi Server | Máy chủ không thể hoàn thành yêu cầu hợp lệ |
1xx Phản Hồi Thông Tin
Các status code này cho biết máy chủ đã nhận được yêu cầu và đang tiếp tục xử lý. Chúng hiếm khi được nhìn thấy trong duyệt web hàng ngày nhưng quan trọng cho đàm phán giao thức.
- 100 Continue: máy chủ đã nhận header yêu cầu, client nên tiếp tục gửi body yêu cầu.
- 101 Switching Protocols: máy chủ đang chuyển đổi giao thức theo yêu cầu của client qua header Upgrade.
- 103 Early Hints: được sử dụng để tải trước tài nguyên trước khi phản hồi cuối cùng sẵn sàng, cải thiện hiệu suất tải trang.
2xx Phản Hồi Thành Công
Các status code này xác nhận yêu cầu đã được nhận, hiểu và xử lý thành công.
- 200 OK: phản hồi thành công tiêu chuẩn. Tài nguyên được yêu cầu đã được tìm thấy và trả về.
- 201 Created: tài nguyên mới đã được tạo thành công, thường là phản hồi cho yêu cầu POST.
- 204 No Content: yêu cầu thành công nhưng không có nội dung trả về. Phổ biến cho yêu cầu DELETE.
- 206 Partial Content: máy chủ chỉ phân phối một phần của tài nguyên, được sử dụng cho tải tệp lớn và streaming video.
3xx Phản Hồi Chuyển Hướng
Status code chuyển hướng cho client biết tài nguyên được yêu cầu có sẵn ở vị trí khác. Chúng rất quan trọng cho SEO vì chúng ảnh hưởng đến cách công cụ tìm kiếm lập chỉ mục trang của bạn.
- 301 Moved Permanently: tài nguyên đã được di chuyển vĩnh viễn sang URL mới. Công cụ tìm kiếm chuyển link equity sang URL mới. Đây là redirect quan trọng nhất trong SEO.
- 302 Found: tài nguyên tạm thời nằm ở URL khác. Công cụ tìm kiếm thường giữ nguyên URL gốc được lập chỉ mục. Chỉ sử dụng cho di chuyển tạm thời.
- 304 Not Modified: cho biết phiên bản đã lưu trong cache của tài nguyên vẫn hợp lệ. Điều này tiết kiệm băng thông bằng cách tránh truyền dữ liệu không cần thiết.
- 307 Temporary Redirect: tương tự 302, nhưng đảm bảo phương thức HTTP không thay đổi. Đáng tin cậy hơn 302 cho triển khai kỹ thuật.
- 308 Permanent Redirect: tương tự 301, nhưng đảm bảo phương thức HTTP không thay đổi. Là lựa chọn thay thế hiện đại cho redirect vĩnh viễn 301.
4xx Lỗi Phía Client
Các status code này cho biết client đã mắc lỗi trong yêu cầu. Chúng là những lỗi phổ biến nhất mà khách truy cập trang web gặp phải.
- 400 Bad Request: máy chủ không thể xử lý yêu cầu do lỗi cú pháp. Kiểm tra tham số và header yêu cầu của bạn.
- 401 Unauthorized: cần xác thực và chưa được cung cấp hoặc xác thực thất bại. Người dùng cần đăng nhập.
- 403 Forbidden: máy chủ hiểu yêu cầu nhưng từ chối ủy quyền. Không giống 401, xác thực cũng không giúp ích.
- 404 Not Found: tài nguyên được yêu cầu không tồn tại trên máy chủ. Đây là mã lỗi phổ biến nhất và có thể ảnh hưởng đáng kể đến SEO nếu không được xử lý đúng cách.
- 405 Method Not Allowed: phương thức yêu cầu (GET, POST, PUT, v.v.) không được tài nguyên được yêu cầu hỗ trợ.
- 429 Too Many Requests: người dùng đã gửi quá nhiều yêu cầu trong một khoảng thời gian nhất định. Đây là giới hạn tốc độ, thường được API sử dụng.
5xx Lỗi Phía Server
Các status code này cho biết máy chủ không thể hoàn thành yêu cầu hợp lệ. Chúng đại diện cho các vấn đề phía máy chủ cần được chú ý ngay lập tức.
- 500 Internal Server Error: thông báo lỗi chung khi máy chủ gặp tình huống không mong đợi. Kiểm tra nhật ký máy chủ để tìm nguyên nhân gốc.
- 502 Bad Gateway: máy chủ hoạt động như gateway và nhận được phản hồi không hợp lệ từ máy chủ upstream. Phổ biến trong reverse proxy và CDN.
- 503 Service Unavailable: máy chủ tạm thời không thể xử lý yêu cầu, thường do bảo trì hoặc quá tải. Sử dụng header Retry-After để chỉ thời điểm thử lại.
- 504 Gateway Timeout: máy chủ hoạt động như gateway và không nhận được phản hồi kịp thời từ máy chủ upstream.
Cách Gỡ Lỗi HTTP Status Codes
Khi khắc phục sự cố lỗi HTTP, hãy tuân theo phương pháp hệ thống sau:
- Kiểm tra status code: xác định đó là lỗi client (4xx) hay lỗi server (5xx).
- Xem nhật ký máy chủ: đối với lỗi 5xx, nhật ký máy chủ chứa stack trace và chi tiết lỗi.
- Kiểm tra header yêu cầu: sử dụng công cụ phát triển trình duyệt để xác minh yêu cầu chứa header, cookie và token xác thực chính xác.
- Kiểm tra bằng curl: tái tạo yêu cầu bằng curl để cô lập vấn đề ở phía client hay phía server.
- Kiểm tra các thay đổi gần đây: triển khai, cập nhật cấu hình hoặc thay đổi DNS thường gây ra lỗi status code.
Bạn muốn tra cứu nhanh bất kỳ HTTP status code nào? Hãy thử công cụ tham khảo HTTP status code miễn phí của chúng tôi.
Thử Công Cụ HTTP Status CodesCâu Hỏi Thường Gặp
HTTP status code phổ biến nhất là gì?
HTTP status code phổ biến nhất là 200 OK, cho biết yêu cầu thành công. Các status code phổ biến khác bao gồm 301 Moved Permanently, 404 Not Found và 500 Internal Server Error.
Sự khác biệt giữa redirect 301 và 302 là gì?
Redirect 301 là vĩnh viễn, cho công cụ tìm kiếm biết chuyển link equity sang URL mới. Redirect 302 là tạm thời, cho công cụ tìm kiếm biết giữ nguyên URL gốc được lập chỉ mục. Sử dụng 301 cho di chuyển vĩnh viễn, 302 cho di chuyển tạm thời.
Làm thế nào để sửa lỗi 403 Forbidden?
Lỗi 403 có nghĩa là máy chủ hiểu yêu cầu nhưng từ chối ủy quyền. Kiểm tra quyền tệp, xác minh thông tin xác thực, đảm bảo người dùng có quyền truy cập và kiểm tra hạn chế IP hoặc plugin bảo mật chặn.
Status code 429 có nghĩa là gì?
Status code 429 Too Many Requests cho biết bạn đã gửi quá nhiều yêu cầu trong một khoảng thời gian nhất định. Đây là giới hạn tốc độ. Phản hồi thường chứa header Retry-After, chỉ thời gian cần chờ trước khi yêu cầu lại.
Lỗi 500 là vấn đề của tôi hay của server?
500 Internal Server Error là vấn đề phía máy chủ, không phải do yêu cầu của client gây ra. Nó thường chỉ ra lỗi trong mã máy chủ, lỗi cấu hình hoặc vấn đề cạn kiệt tài nguyên. Tuy nhiên, nếu yêu cầu của bạn kích hoạt lỗi máy chủ, việc sửa đổi yêu cầu có thể tránh được lỗi.