Mã trạng thái HTTP là yếu tố then chốt giúp bạn xây dựng và duy trì một trang web chuyên nghiệp. Bài viết này sẽ mang đến cho bạn cái nhìn tổng quát về các loại mã trạng thái phổ biến, từ những thông tin cơ bản cho đến các mã lỗi thường gặp và cách mà chúng ảnh hưởng đến trải nghiệm của người dùng. Hãy cùng VFFTECH khám phá chi tiết trong bài viết này nhé!
Bạn có bao giờ tự hỏi về những con số kỳ lạ như 404, 500 hay 403 xuất hiện khi bạn truy cập vào một trang web? Đó chính là mã trạng thái HTTP – ngôn ngữ giao tiếp giữa trình duyệt và máy chủ web, đóng vai trò cực kỳ quan trọng trong việc đảm bảo rằng website hoạt động mượt mà và mang lại trải nghiệm tốt nhất cho người dùng. Nắm vững mã trạng thái HTTP giống như sở hữu chìa khóa vàng để tạo ra một trang web chuyên nghiệp!
HTTP Status Code là gì?
Mã trạng thái HTTP là những con số được dùng để phản ánh kết quả của một yêu cầu từ máy khách gửi đến máy chủ. Chúng giúp máy khách nắm bắt được tình hình của yêu cầu, chẳng hạn như liệu nó có thành công hay không, và cung cấp thêm thông tin về nguyên nhân cụ thể. Các mã này được phân chia thành 5 nhóm chính dựa theo chữ số đầu tiên:
- 1xx: Thông tin (Informational)
- 2xx: Thành công (Successful)
- 3xx: Chuyển hướng (Redirection)
- 4xx: Lỗi phía máy khách (Client Error)
- 5xx: Lỗi phía máy chủ (Server Error)
Chẳng hạn, mã 200 biểu thị rằng yêu cầu đã được xử lý thành công, trong khi mã 404 cho biết tài nguyên mà bạn đang tìm kiếm không tồn tại trên máy chủ.
Các mã trạng thái HTTP được quản lý bởi Cơ Quan Cấp Số Được Ấn Định Trên Internet (IANA) và chúng rất phổ biến trong các ứng dụng sử dụng giao thức HTTP.
Phân loại các mã HTTP Status Code
Trong hệ thống HTTP, mã trạng thái (Status Code) được phân loại thành 5 nhóm chính, thể hiện kết quả của việc xử lý yêu cầu:
- Mã 1xx (100 – 199) – Phản hồi thông tin: Yêu cầu của bạn đã được nhận và đang trong quá trình xử lý.
- Mã 2xx (200 – 299) – Phản hồi thành công: Máy chủ đã nhận và hoàn tất yêu cầu của bạn một cách thành công.
- Mã 3xx (300 – 399) – Điều hướng: Khách hàng cần thực hiện thêm một số hành động để hoàn tất yêu cầu, như là chuyển hướng đến một URL khác.
- Mã 4xx (400 – 499) – Lỗi phía client: Yêu cầu không được hoàn thành hoặc có cú pháp sai do lỗi từ phía client khi gửi đi.
- Mã 5xx (500 – 599) – Lỗi phía máy chủ: Máy chủ không thể xử lý yêu cầu hợp lệ. Khi gặp lỗi 5xx, khách hàng chỉ có thể chờ đợi máy chủ khắc phục sự cố.
Danh sách hoàn chỉnh của các HTTP Status Code
Danh sách đầy đủ các mã trạng thái HTTP bao gồm: Mã + mô tả ngắn gọn về nguyên nhân.
Information responses / Phản hồi thông tin
- 100 Tiếp tục: Đây là một thông báo tạm thời, cho biết rằng mọi thứ vẫn diễn ra bình thường và bạn có thể tiếp tục gửi yêu cầu. Nếu yêu cầu của bạn đã hoàn tất, bạn có thể bỏ qua thông báo này.
- 101 Chuyển giao thức: Mã này được gửi để phản hồi lại yêu cầu nâng cấp từ phía bạn và thông báo rằng máy chủ đang trong quá trình chuyển sang giao thức mới.
- 102 Đang xử lý (WebDAV): Mã này cho thấy máy chủ đã nhận được yêu cầu của bạn và đang tiến hành xử lý. Tuy nhiên, phản hồi cuối cùng vẫn chưa sẵn sàng.
- 103 Gợi ý sớm: Mã này được sử dụng để trả về một số tiêu đề phản hồi trước khi gửi thông điệp HTTP cuối cùng.
Successful responses / Phản hồi thành công
Dưới đây là các mã phản hồi HTTP cho biết yêu cầu đã thành công:
- 200 OK: Yêu cầu đã được xử lý thành công. Ý nghĩa của mã này phụ thuộc vào phương thức HTTP:
- GET: Trả về nội dung của tài nguyên.
- HEAD: Chỉ trả về các header của tài nguyên mà không có nội dung.
- PUT/POST: Tài nguyên mô tả kết quả của hành động sẽ được gửi trong nội dung phản hồi.
- TRACE: Nội dung phản hồi chứa thông báo yêu cầu mà máy chủ nhận được.
- 201 Created: Yêu cầu đã thành công và tạo ra một tài nguyên mới, thường là phản hồi cho các yêu cầu POST hoặc một số yêu cầu PUT.
- 202 Accepted: Yêu cầu đã được tiếp nhận nhưng chưa thực hiện. Đây là một phản hồi không cam kết, vì không có cách nào trong HTTP để gửi phản hồi không đồng bộ sau đó về kết quả, thường dùng cho những trường hợp cần thời gian xử lý lâu hoặc xử lý hàng loạt.
- 203 Non-Authoritative Information: Siêu thông tin trả về không hoàn toàn giống với thông tin gốc, mà được thu thập từ bản sao cục bộ hoặc bên thứ ba, thường chỉ dùng để phản chiếu hay sao lưu tài nguyên khác, thông thường nên trả về 200 OK.
- 204 No Content: Không có nội dung để gửi, nhưng các header vẫn có giá trị. Trình duyệt có thể cập nhật các header đã lưu trong cache.
- 205 Reset Content: Yêu cầu trình duyệt thiết lập lại tài liệu đã gửi yêu cầu này.
- 206 Partial Content: Trả về một phần nội dung của tài nguyên theo yêu cầu Range từ client.
- 207 Multi-Status, 208 Already Reported: Sử dụng trong WebDAV để cung cấp thông tin về nhiều tài nguyên.
- 226 IM Used: Máy chủ đã hoàn thành yêu cầu GET và phản hồi là kết quả của một hoặc nhiều thao tác instance đã được áp dụng.
Redirects / Điều hướng
Chắc chắn rồi! Dưới đây là phiên bản diễn giải lại của các mã trạng thái HTTP mà bạn đã cung cấp:
- 300 Nhiều Lựa Chọn: Khi có nhiều phản hồi khả dụng cho một yêu cầu, người dùng sẽ cần chọn một trong số đó. Mặc dù không có cách chuẩn hóa để thực hiện việc này, nhưng việc sử dụng các liên kết HTML được khuyến nghị sẽ giúp người dùng dễ dàng hơn trong việc lựa chọn.
- 301 Di Chuyển Vĩnh Viễn: URL của tài nguyên mà người dùng yêu cầu đã được thay đổi vĩnh viễn. URL mới sẽ được cung cấp trong phần phản hồi để người dùng biết.
- 302 Tìm Thấy: Mã này chỉ ra rằng URI của tài nguyên yêu cầu đã được thay đổi tạm thời. Có thể sẽ có những thay đổi khác về URI trong tương lai, vì vậy client nên tiếp tục sử dụng URI ban đầu cho các yêu cầu sau này.
- 303 Xem Khác: Máy chủ gửi phản hồi này để hướng dẫn client lấy tài nguyên từ một URI khác bằng cách sử dụng yêu cầu GET.
- 304 Không Thay Đổi: Mã này được sử dụng để hỗ trợ lưu trữ bộ nhớ cache. Nó thông báo cho client rằng phản hồi không có sự thay đổi, do đó client có thể tiếp tục sử dụng phiên bản đã lưu trong bộ nhớ cache.
- 305 Sử Dụng Proxy: Trong các phiên bản trước của đặc tả HTTP, mã trạng thái này được dùng để chỉ ra rằng phản hồi yêu cầu cần phải được truy cập thông qua một proxy, nhằm đảm bảo an toàn liên quan đến cấu hình proxy trong băng tần.
- 306 Không Sử Dụng: Mã phản hồi này đã không còn được sử dụng nữa. Nó được giữ lại và chỉ áp dụng trong các phiên bản trước của HTTP/1.1.
- 307 Chuyển Hướng Tạm Thời: Máy chủ gửi phản hồi này để hướng dẫn client lấy tài nguyên yêu cầu từ một URI khác, với cùng phương thức đã sử dụng trong yêu cầu trước. Mã này có ý nghĩa tương tự như mã 302 Tìm Thấy, nhưng user-agent không được phép thay đổi phương thức HTTP: nếu yêu cầu đầu tiên là POST, thì yêu cầu thứ hai cũng phải là POST.
- 308 Chuyển Hướng Vĩnh Viễn: Mã phản hồi này cho biết rằng tài nguyên hiện đã được chuyển đến một URI khác, được chỉ định bởi header Location trong phản hồi HTTP. Mã này tương đương với mã 301 Di Chuyển Vĩnh Viễn, ngoại trừ việc user-agent không thể thay đổi phương thức HTTP: nếu yêu cầu ban đầu là POST, thì yêu cầu tiếp theo cũng phải là POST.
Hy vọng rằng phần diễn giải này sẽ giúp bạn hiểu rõ hơn về các mã trạng thái HTTP!
Client errors / Lỗi phía client
Chắc hẳn bạn đã từng gặp phải một số mã lỗi khi lướt web. Hãy cùng khám phá ý nghĩa của chúng nhé!
- 400 Bad Request: Mã này cho biết rằng máy chủ không thể hiểu yêu cầu vì cú pháp không đúng. Điều này thường xảy ra khi dữ liệu mà client gửi không đúng định dạng hoặc có cấu trúc sai lệch.
- 401 Unauthorized: Đây không chỉ đơn thuần là việc client không có quyền truy cập, mà thực tế là client chưa được xác thực. Để nhận được phản hồi như mong muốn, client cần phải tự mình xác thực.
- 402 Payment Required: Mã này dành cho các ứng dụng thanh toán trong tương lai, nhưng hiện tại ít khi được sử dụng và không có quy tắc cụ thể nào.
- 403 Forbidden: Mã này thông báo rằng client đã được xác thực, nhưng không có quyền truy cập vào tài nguyên mà họ yêu cầu. Điều này khác với mã 401 ở chỗ danh tính của client đã được máy chủ nhận diện.
- 404 Not Found: Mã này cho biết máy chủ không tìm thấy tài nguyên mà bạn đang tìm kiếm.
- 405 Method Not Allowed: Mã này cho biết phương thức yêu cầu (như GET, POST, PUT, DELETE,…) đã được máy chủ nhận diện nhưng bị vô hiệu hóa. Ví dụ, một API có thể cấm hành động DELETE trên một tài nguyên nhất định.
- 406 Not Acceptable: Mã này được gửi khi máy chủ không thể tìm thấy nội dung phù hợp với yêu cầu của trình duyệt, sau khi đã cố gắng đàm phán nội dung.
- 407 Proxy Authentication Required: Mã này tương tự như mã 401, nhưng yêu cầu xác thực đến từ proxy thay vì máy chủ. Proxy sẽ yêu cầu client xác thực trước khi chuyển tiếp yêu cầu đến máy chủ.
- 408 Request Timeout: Máy chủ gửi phản hồi này khi kết nối không hoạt động, ngay cả khi không có yêu cầu nào từ trình duyệt trước đó. Điều này cho thấy máy chủ muốn đóng kết nối không sử dụng. Phản hồi này thường xuất hiện khi các trình duyệt như Chrome, Firefox hay IE9 sử dụng cơ chế tiền kết nối HTTP để tăng tốc độ lướt web. Cũng cần lưu ý rằng một số máy chủ có thể đóng kết nối mà không cần thông báo này.
Hy vọng những thông tin này giúp bạn hiểu rõ hơn về các mã lỗi phổ biến khi duyệt web!Chắc chắn rồi! Dưới đây là phiên bản diễn đạt lại của các mã trạng thái HTTP mà bạn đã cung cấp:
- 409 Conflict: Có sự xung đột với tình trạng hiện tại của máy chủ.
- 410 Gone: Nội dung đã bị xóa hoàn toàn và không có địa chỉ nào để chuyển hướng.
- 411 Length Required: Yêu cầu thiếu trường Content-Length.
- 412 Precondition Failed: Điều kiện tiên quyết trong tiêu đề không được thỏa mãn.
- 413 Payload Too Large: Dữ liệu gửi lên vượt quá giới hạn cho phép của máy chủ.
- 414 URI Too Long: URI yêu cầu dài hơn khả năng xử lý của máy chủ.
- 415 Unsupported Media Type: Định dạng nội dung không được máy chủ chấp nhận.
- 416 Range Not Satisfiable: Máy chủ không thể cung cấp phần tệp tin mà bạn yêu cầu.
- 417 Expectation Failed: Máy chủ không thể thực hiện các yêu cầu trong trường Expect.
Hy vọng rằng cách diễn đạt này giúp bạn dễ hiểu hơn!
Server errors / Lỗi phía máy chủ
Chắc chắn rồi! Dưới đây là những thông tin về các lỗi máy chủ mà bạn có thể tham khảo:
- 500 Lỗi Máy Chủ Nội Bộ: Đây là một lỗi chung khi máy chủ gặp phải sự cố không mong muốn.
- 501 Chưa Được Thực Hiện: Máy chủ không hỗ trợ phương thức yêu cầu mà bạn đang sử dụng.
- 502 Cổng Xấu: Máy chủ proxy nhận được phản hồi không hợp lệ từ máy chủ gốc.
- 503 Dịch Vụ Không Có Sẵn: Hiện tại, máy chủ không thể phục vụ (có thể do quá tải hoặc đang trong quá trình bảo trì).
- 504 Hết Thời Gian Kết Nối: Máy chủ proxy không nhận được phản hồi kịp thời từ máy chủ gốc.
- 505 Phiên Bản HTTP Không Được Hỗ Trợ: Máy chủ không chấp nhận phiên bản HTTP mà bạn đang sử dụng.
Hy vọng những thông tin này sẽ giúp bạn hiểu rõ hơn về các lỗi máy chủ nhé!
Tạm kết
Hy vọng rằng qua bài viết này, bạn đã nắm bắt được khái niệm về HTTP Status Code và vai trò quan trọng của chúng trong việc phát triển và duy trì một trang web chuyên nghiệp. Những mã trạng thái này không chỉ đơn thuần là những con số khó hiểu, mà thực sự là ngôn ngữ giao tiếp thiết yếu giữa trình duyệt và máy chủ web. Chúng giúp xác định kết quả của từng yêu cầu HTTP và cung cấp thông tin về nguyên nhân cụ thể. Chúc bạn thành công trong hành trình khám phá thế giới HTTP Status Code và xây dựng một trang web thật ấn tượng!
Xem thêm tại: Công ty cổ phần công nghệ VFFTECH