Thư viện

Mã trạng thái HTTP: Giới thiệu về các thông báo lỗi

Mã trạng thái HTTP: Giới thiệu về các thông báo lỗi

Chắc rằng chúng ta ai cũng từng thất vọng toàn tập khi lỗi “404 Not Found” khét tiếng xuất hiện trên màn hình. Dù nổi danh như thế, nhưng điều ngạc nhiên là không quá nhiều người biết chính xác mã này là gì.

Vì vậy, hôm nay ta cùng tìm hiểu về những nỗi đau của mọi cư dân mạng – mã trạng thái HTTP!
Explaining HTTP response status code

Tổng thể về Mã trạng thái HTTP

Mã trạng thái HTTP (HTTP status code) là câu trả lời của máy chủ (server) cho yêu cầu đến từ máy khách (client). Một trong những mã phổ biến nhất – 404 – là mã trạng thái HTTP đề cập đến lỗi “Not Found” (Không tìm thấy trang web được yêu cầu). Bên cạnh 404, có rất nhiều mã trạng thái lỗi HTTP (HTTP error code) khác.

Khi bạn truy cập tới một trang web nào đó, mã trạng thái HTTP là thông báo từ server phản hồi cho yêu cầu truy cập đó của bạn. Mã trạng thái HTTP không phải là nội dung của trang web. Bạn có thể xem nó như ghi chú chú thích về việc gì đang diễn ra tại trang web này.

Cách thức mã trạng thái HTTP hoạt động và Danh mục mã

Mã trạng thái HTTP xảy ra khi trình duyệt web (browser như Chrome, Firefox,..) gửi yêu cầu đến server mỗi khi ai đó truy cập trang web (như khi bạn nhấp vào một đường link hoặc nhập địa chỉ vào URL và nhấn Enter). Trước khi hiển thị trang web, server phải nhận được yêu cầu, xử lý và sau đó truyền tiêu đề HTTP (HTTP header) mang mã trạng thái của trang web đó đến browser của khách hàng.

Mặc dù server luôn trả lại các mã mỗi khi browser yêu cầu bất kỳ trang web nào, nhưng phần lớn các mã đó sẽ không hiển thị. Ví dụ: mã trạng thái của trang web chuẩn là “200 O.K.”. Khi một trang web vẫn hoạt động tốt, bạn sẽ không thấy mã trạng thái 200, vì máy chủ sẽ truyền nội dung của trang đó cho bạn. Nói chung, chỉ khi nào có sai sót gì, bạn mới thấy mã trạng thái hiện lên. Đây là cách server giải thích: “Có điều gì đó không ổn, đây là đoạn mã làm rõ những lỗi gì đang xảy ra.”

HTTP status code categories

Mã trạng thái HTTP thường có ba chữ số với tổng cộng năm danh mục. Chữ số đầu tiên của mã trạng thái cho biết loại phản hồi:

  • 1xx – Informational: Phản hồi thông tin
  • 2xx – Success: Xử lý thành công
  • 3xx – Redirection: Chuyển hướng
  • 4xx – Client Error: Lỗi máy khách
  • 5xx – Server Error: Lỗi máy chủ

Tại sao các mã trạng thái này lại gom một nhóm ba chữ số? Nguyên nhân là vì ba số thì dễ nhớ hơn, tương tự như TLA (viết tắt ba chữ). Rất nhiều thuật ngữ trong máy tính là TLA, nên cũng không có gì ngạc nhiên khi mã trạng thái có ba con số.

Thông báo lỗi HTTP và ý nghĩa của chúng

Như đã nói, mã HTTP là một nhóm ba ký tự với năm lớp, nhưng ý nghĩa chính xác đằng sau những con số này là gì?

Giải thích Mã lỗi HTTP

Hãy lấy mã 404 làm ví dụ. Chúng ta có thể chia mã thành ba số riêng biệt, tương tự như cách chúng ta phát âm: 4, 0 và 4.

4 đầu tiên (ở định dạng 4xx) cho biết đó là lỗi của khách hàng. Có thể bạn đã phạm sai sót nào đó, chẳng hạn như một lỗi chính tả khi nhập URL, hoặc trang web chỉ đơn giản là không còn tồn tại nữa.

Số 0 ở giữa chỉ ra lỗi cú pháp chung. Và số cuối cùng, có thể là bất kỳ thứ gì từ 0 đến 9, đề cập đến vấn đề cụ thể nào nằm trong danh mục lỗi 4xx – trong trường hợp 404, thứ bạn đang tìm kiếm không tồn tại. Kết luận lại ta có mã 404 cho biết đó là lỗi “không tìm thấy” (do không tồn tại) từ phía máy khách.

Danh sách mã lỗi HTTP (Mã trạng thái HTTP + Lý do xuất hiện các mã lỗi)

Mã trạng thái lỗi Ý nghĩa mã
3xx URL chuyển hướng đến URL khác
300 Multiple Choice Yêu cầu có nhiều phản hồi mà khách hàng có thể chọn
301 Moved permanently URL được yêu cầu đã được thay đổi vĩnh viễn và phản hồi cũng chứa URL mới
302 Found (trước đó là Moved Temporarily) Địa chỉ trang đã được thay đổi tạm thời và có URL mới
303 See Other Do dữ liệu ở nơi khác nên máy chủ sẽ chuyển hướng máy khách bằng phương thức GET
304 Found (previously Moved Temporarily Tài nguyên chưa được sửa đổi nên khách hàng có thể tiếp tục sử dụng phiên bản đã lưu trong bộ nhớ cache
305 Use Proxy Yêu cầu truy cập qua proxy. Vì lý do bảo mật, mã này không còn được sử dụng
4xx Sự cố xảy ra từ phía máy khách
400 Bad Request Máy chủ không thể hiểu yêu cầu do lỗi máy khách (ví dụ: cú pháp bị sai định dạng, định tuyến yêu lừa đảo, v.v.)
401 Unauthorized Máy khách bị từ chối truy cập do không có thông tin xác thực hợp lệ
402 Payment Required Mục đích ban đầu của mã 402 là hình thức phương thức thanh toán kỹ thuật số. Mã đang được để dành trong tương lai
403 Forbidden Máy chủ web từ chối quyền truy cập của máy khách
404 Not Found Các file / trang web được yêu cầu không tồn tại hoặc đã bị xóa nên không có trên máy chủ
405 Method Not Allowed Tài nguyên mà máy khách yêu cầu không được máy chủ hỗ trợ
406 Not Acceptable Máy chủ hiểu và xử lý yêu cầu, nhưng máy khách không thể hiểu hình thức phản hồi
407 Proxy Authentication Required Yêu cầu máy khách phải xác thực bằng proxy
408 Request Time-out Máy chủ mất quá nhiều thời gian để xử lý yêu cầu (thường là do lưu lượng mạng quá cao)
409 Conflict Yêu cầu của máy khách xung đột với yêu cầu hiện có trong máy chủ
410 Gone Tương tự như mã 404, mã 410 cho biết tài nguyên không còn tồn tại nữa, vì vậy các công cụ tìm kiếm có thể xóa tài nguyên này khỏi các chỉ mục index
411 Length Required Thiếu header Độ dài nội dung (header Content-Length) nên máy chủ từ chối xử lý yêu cầu
412 Precondition Failed Máy chủ không đáp ứng các điều kiện trong header của yêu cầu
413 Payload Too Large Yêu cầu quá lớn so với khả năng của máy chủ
414 URI Too Long URI được cung cấp quá dài để máy chủ xử lý
415 Unsupported Media Type Máy chủ không hỗ trợ loại file được yêu cầu
5xx Sự cố xảy ra từ phía máy chủ
500 Internal Server Error Thông báo lỗi chung – máy chủ web có vấn đề gì đó hoặc không thể xác định chính xác vấn đề là gì.
501 Not Implemented Máy chủ không thể xử lý yêu cầu vì không hỗ trợ cùng phương thức
502 Bad Gateway Khi hoạt động như một cổng Gateway, máy chủ nhận được phản hồi không hợp lệ từ máy chủ upstream
503 Service Unavailable Lỗi tạm thời khi máy chủ không thể xử lý yêu cầu (ví dụ: máy chủ bị quá tải hoặc ngừng hoạt động)
504 Gateway Time-out Tương tự như lỗi 408 Request time-out, nhưng lỗi này xảy ra ở cổng máy chủ (Server port), cho thấy máy chủ đang ngừng hoặc không hoạt động.
505 HTTP Version Not Supported Máy chủ không hỗ trợ phiên bản HTTP của yêu cầu

Ngoài ra, trong bảng mã lỗi phổ biến này, bạn có thể thấy không hề có danh mục mã 1xx2xx. Đó là do cả hai danh mục 1xx và 2xx đều có nghĩa là server đã nhận, hiểu và chấp nhận yêu cầu của khách hàng – Chúng là mã “thành công”, không phải mã “lỗi”, và sẽ không hiển thị cho phía client.

Sự trỗi dậy của Mã trạng thái HTTP

Một trong những mã HTTP đã trở nên quá nổi tiếng, nó không chỉ là thuật ngữ riêng của ngành IT nữa, mà giờ đây đã trở thành một phần của văn hóa đại chúng – Đúng vậy, đó chính là mã lỗi 404. Mã “404 Not found” đã trở nên quen thuộc và là ký hiệu quốc tế cho bất kỳ thứ gì bị thiếu, bị mất hoặc không thể tìm thấy.

Làm gì có ai muốn dính líu đến 404 với cái định nghĩa đầy tiêu cực như vậy đâu nhỉ?!

Nên cũng chẳng bất ngờ khi với phản ứng vừa buồn cười vừa khó chịu của IPTP Networks, một công ty viễn thông toàn cầu, trớ trêu thay lại vấp phải con số này ở một tình cảnh khá éo le không thể tưởng tượng được

Trước đây, khi IPTP đàm phán về việc thuê không gian cho trung tâm dữ liệu Matrix 4 tại Amsterdam với địa chỉ cụ thể là Kruislaan 411. 411 còn được biết đến như là số “hướng dẫn danh bạ” ở Bắc Mỹ nên IPTP team khá hài lòng và vui vẻ. Đơn giản thôi, bạn muốn tìm số điện thoại? Gọi ngay 411. Tìm địa chỉ nhà? Hỏi 411. Muốn có trung tâm dữ liệu đẳng cấp thế giới, được xây dựng bằng các giải pháp và công nghệ hàng đầu trong ngành? Đi thẳng đến 411 (đường Kruislaan). Quá chí lý nhỉ?!

Mọi thứ hoàn toàn tốt đẹp và ổn thoả, cho đến khi chính quyền khu vực quyết định rằng đã đến lúc phải cần thay đổi “một cái gì đấy”.

Và với sự thay đổi mới về địa chỉ, Matrix 4 hiện đang nằm tại — đoán xem? — 404 Science Park.

411 biến thành 404.

IPTP Networks Datacenter Matrix 4 at 404 Science Park peering facilities, Amsterdam, the Netherlands

Matrix 4 đi từ số “hướng dẫn danh bạ” thành con số “không thể tìm thấy”.

Rõ ràng đây là bằng chứng cho thấy khi mọi thứ thuận tiện, sẽ luôn có một điều gì đấy kì khôi xuất hiện đánh tan sự hài lòng và vui vẻ ban đầu, nhỉ? Tuy nhiên đấy chỉ là một câu chuyện đùa vui mà IPTP team vẫn hay kể lại, và đương nhiên chúng tôi luôn luôn tự tin vào khả năng cung cấp dịch vụ của mình và mang đến sự hài lòng cho quý đối tác và khách hàng. Một điểm xấu vô tình lại thành một câu chuyện cười và làm nền cho sự phát triển vững chãi trong 25 năm hoạt động vừa qua của IPTP Networks. Một địa chỉ xui xẻo nhưng lại là điểm khởi đầu cho những dịch vụ chất lượng. Cũng như lâu lâu vấp phải 404 là một cái giá nhỏ phải trả cho một nguồn meme vô tận. Một địa chỉ xấu với những dịch vụ xuất sắc – đây là cách vũ trụ vận hành cân bằng.

Bạn muốn truy cập trung tâm dữ liệu “không thể tìm thấy” của IPTP Networks? Ngay đây, tại: Matrix 4

Yêu cầu báo giá

Sẵn sàng để bắt đầu?

Yêu cầu báo giá