Mã trạng thái HTTP giải thích, từ 200 đến 503
Mỗi khi trình duyệt của bạn yêu cầu web server cung cấp thứ gì đó, server trả lời bằng một con số ba chữ số trước khi gửi lại bất kỳ HTML, hình ảnh, hoặc JSON nào. Con số đó là mã trạng thái HTTP, và đây là cách ngắn gọn của server để nói điều gì đã xảy ra: trang ở đây, nó đã chuyển đi, bạn không được phép vào, hoặc có gì đó hỏng ở phía chúng tôi. Hầu hết thời gian bạn không bao giờ thấy những mã này vì mọi thứ hoạt động tốt và trang tải bình thường. Nhưng ngay khi một trang web hoạt động sai, mã trạng thái là manh mối đầu tiên đáng đọc.
Các con số không phải ngẫu nhiên. Chữ số đầu tiên sắp xếp mỗi phản hồi vào một trong năm họ, vì vậy ngay cả một mã không quen thuộc cũng cho bạn biết đại khái điều gì sai chỉ qua số đứng đầu của nó. Học năm họ và bạn có thể đọc hầu hết bất kỳ phản hồi nào trong nháy mắt.

Năm lớp mã trạng thái
1xx thông tin. Server nhận được yêu cầu của bạn và vẫn đang xử lý. Những mã này hiếm khi gặp trong duyệt web hàng ngày và thường được xử lý âm thầm giữa trình duyệt và server. 100 Continue là ví dụ điển hình, báo cho client biết rằng ổn để gửi phần còn lại của body yêu cầu lớn.
2xx thành công. Yêu cầu đã hoạt động. 200 OK là mã bạn muốn thấy suốt ngày, nghĩa là tài nguyên đã được tìm thấy và đang trên đường trở về. 201 Created xuất hiện sau khi bạn gửi form hoặc gọi API tạo ra thứ gì đó mới, và 204 No Content có nghĩa là hành động thành công nhưng không có gì để hiển thị.
3xx chuyển hướng. Thứ bạn yêu cầu nằm ở nơi khác, và trình duyệt thường tự động theo dõi. Chuyển hướng giữ các liên kết cũ còn sống và quan trọng rất nhiều cho thứ hạng tìm kiếm.
4xx lỗi client. Có gì đó về yêu cầu sai ở phía bạn: URL xấu, thiếu đăng nhập, hoặc tài nguyên không tồn tại. Server khỏe mạnh; nó chỉ không thể chấp nhận những gì bạn gửi.
5xx lỗi server. Yêu cầu của bạn ổn, nhưng server gặp vấn đề khi xử lý nó. Những mã này chỉ vào cơ sở hạ tầng của trang web, không phải bạn.
Các mã cụ thể mà mọi người thực sự tra cứu
200 OK là thành công đơn giản. Trang hoặc dữ liệu đã tải như mong đợi.
301 Moved Permanently báo cho trình duyệt và công cụ tìm kiếm biết rằng một trang có nhà mới vĩnh viễn. Đây là chuyển hướng thân thiện với SEO, vì nó truyền tín hiệu xếp hạng từ URL cũ sang URL mới. Hãy dùng nó khi bạn thay đổi URL vĩnh viễn.
302 Found là chuyển hướng tạm thời. URL gốc vẫn là địa chỉ thực, vì vậy công cụ tìm kiếm tiếp tục lập chỉ mục nó thay vì đích đến. Hãy dùng 302 chỉ khi việc di chuyển thực sự ngắn hạn, chẳng hạn chuyển người dùng đến trang đích theo mùa.
304 Not Modified là anh hùng thầm lặng của việc duyệt web nhanh. Nó báo cho trình duyệt biết rằng bản sao đã có trong cache vẫn còn hiện tại, vì vậy server bỏ qua việc gửi lại file. Ít dữ liệu hơn, trang nhanh hơn.
400 Bad Request có nghĩa là server không thể hiểu yêu cầu, thường do cú pháp không đúng hoặc tham số không hợp lệ.
401 Unauthorized dịch ra đại khái là "Tôi không biết bạn là ai, vui lòng xác thực." Bạn thiếu thông tin xác thực hợp lệ.
403 Forbidden khác: server biết bạn là ai và vẫn từ chối. Bạn thiếu quyền, và đăng nhập lại sẽ không giúp ích.
404 Not Found là mã nổi tiếng nhất trong tất cả. Server đang sống và đã trả lời bạn, nhưng không có gì tại địa chỉ đó. Nó thường đến từ liên kết gõ sai hoặc trang đã bị xóa hoặc chuyển mà không có chuyển hướng.
429 Too Many Requests có nghĩa là bạn đã bị giới hạn tốc độ. Bạn gửi quá nhiều yêu cầu trong khoảng thời gian quá ngắn, và server đang yêu cầu bạn chậm lại. API sử dụng điều này liên tục.
500 Internal Server Error là phản hồi "có gì đó hỏng" chung chung. Server gặp phải điều kiện bất ngờ và bỏ cuộc, nhưng không nói điều gì. Hãy kiểm tra log server.
502 Bad Gateway xuất hiện khi một server, đóng vai trò là gateway hoặc proxy, nhận được phản hồi không hợp lệ từ server upstream đằng sau nó. Thường là dấu hiệu cho thấy ứng dụng backend đã crash hoặc không thể tiếp cận.
503 Service Unavailable có nghĩa là server tạm thời bị quá tải hoặc đang bảo trì. Không giống 500, nó ngụ ý sự cố là ngắn hạn và trang web sẽ trở lại sớm.

Mã trạng thái có nghĩa gì với SEO và debug
Đối với thứ hạng tìm kiếm, sự phân biệt giữa 301 và 302 là cái bắt mọi người. Việc chuyển vĩnh viễn phải luôn dùng 301 để trang mới kế thừa thẩm quyền của trang cũ; một 302 ở chỗ sai có thể khiến công cụ tìm kiếm lập chỉ mục URL gốc và phân chia tín hiệu của bạn. Trong khi đó, số lượng lớn 404 lãng phí ngân sách crawl và làm khó chịu khách truy cập, vì vậy đáng để chuyển hướng hoặc sửa các liên kết bị hỏng thay vì để chúng thối rữa.
Để debug, họ mã trạng thái cho bạn biết nơi cần tìm. 4xx chỉ vào yêu cầu, vì vậy hãy kiểm tra URL, header và thông tin xác thực. 5xx chỉ vào server, vì vậy hãy kiểm tra log ứng dụng, các dịch vụ upstream, và xem có deploy nào vừa bị hỏng không. Một làn sóng 502 và 503 thường có nghĩa là backend bị down hoặc quá tải hơn là lỗi code. Bạn có thể kiểm tra trạng thái chính xác một trang trả về bằng công cụ lập trình viên của chúng tôi, và khi 5xx trông giống vấn đề kết nối hơn là lỗi ứng dụng, một tra cứu DNS nhanh có thể xác nhận domain vẫn phân giải đến địa chỉ đúng.
Câu hỏi thường gặp
Lỗi 404 có hại cho website của tôi không?
Một vài 404 là bình thường và vô hại. Vấn đề bắt đầu khi các trang phổ biến trả về 404 hoặc khi các liên kết nội bộ bị hỏng chồng chất, lãng phí ngân sách crawl và làm khó chịu khách truy cập. Hãy chuyển hướng các trang đã chuyển và sửa các liên kết xấu.
Sự khác biệt giữa chuyển hướng 301 và 302 là gì?
301 là vĩnh viễn và truyền tín hiệu xếp hạng đến URL mới, vì vậy hãy dùng khi trang chuyển vĩnh viễn. 302 là tạm thời và giữ URL gốc được lập chỉ mục, vì vậy chỉ dùng cho các lần chuyển ngắn hạn.
Sự khác biệt giữa 401 và 403 là gì?
401 có nghĩa là bạn chưa xác thực, vì vậy đăng nhập có thể sửa được. 403 có nghĩa là server nhận ra bạn nhưng vẫn từ chối vì bạn thiếu quyền, vì vậy đăng nhập lại sẽ không giúp ích.
Lỗi 500 có nghĩa là gì và tôi sửa nó như thế nào?
500 Internal Server Error có nghĩa là server gặp lỗi bất ngờ khi xử lý yêu cầu của bạn. Thông báo được thiết kế chung chung có chủ ý, vì vậy việc sửa thường bắt đầu bằng cách đọc log server để tìm nguyên nhân thực.
Tại sao tôi lại nhận được mã trạng thái 429?
429 Too Many Requests có nghĩa là bạn bị giới hạn tốc độ vì gửi yêu cầu quá nhanh. Hãy chậm lại, tôn trọng bất kỳ header Retry-After nào server trả về, và thêm backoff vào script và API client.
503 Service Unavailable có nghĩa là gì?
503 có nghĩa là server tạm thời không thể xử lý yêu cầu, thường do quá tải hoặc bảo trì theo lịch. Nó báo hiệu vấn đề ngắn hạn, vì vậy trang web sẽ tự phục hồi sớm.
