Web Optimization
Tìm hiểu về các loại HTTP response codes hiện nay
Tue Jul 05 2022Tìm hiểu các loại HTTP response codes hiện nay và mức độ ảnh hưởng đến trải nghiệm trực tuyến của người dùng.
HTTP response status codes (status code) chắc chắn không còn xa lạ gì đối với những người thường xuyên làm việc với website, bạn có thể thấy quen thuộc với các status code phổ biến như 404 hay 502. Vậy còn những loại HTTP response codes khác thì sao? Cùng VNIS tìm hiểu trong bài viết dưới đây.
HTTP response codes là gì?
HTTP response codes là mã gồm ba chữ số do máy chủ (server) cấp để phản hồi yêu cầu (response) trình duyệt từ máy khách (client). Các HTTP response codes này đóng vai trò như một phương thức phản ứng nhanh chóng về cách máy chủ hoạt động và phản hồi yêu cầu của khách hàng. Các mã này cũng bao gồm các mã từ IETF Request for Comments (RFC), các thông số kỹ thuật khác và một số mã bổ sung được sử dụng trong các ứng dụng phổ biến của HTTP.
Các loại HTTP status code phổ biến hiện nay
Internet Assigned Numbers Authority (IANA) là cơ quan duy trì sổ đăng ký chính thức của HTTP response codes. Trên 3 chữ số của HTTP, chữ số đầu tiên xác định danh mục của response codes, trong khi hai chữ số cuối cùng được chỉ định cho một loại phản hồi cụ thể trong một danh mục nhất định. Có năm loại HTTP response codes khác nhau và được phân loại dựa trên phương thức mà máy chủ phản hồi với máy khách:
1XX - Mã thông tin (Informational code): Cho biết rằng yêu cầu đã được nhận và hiểu, nó được phát hành trên cơ sở tạm thời trong khi tiếp tục xử lý yêu cầu. Mã thông tin cảnh báo khách hàng để chờ phản hồi cuối cùng. Thông báo chỉ bao gồm dòng trạng thái, các trường tiêu đề tùy chọn, và được kết thúc bằng một dòng trống.
2XX - Mã thành công (Success code): Cho biết hành động mà khách hàng yêu cầu đã được tiếp nhận, hiểu và chấp nhận. Điều này về cơ bản có nghĩa là yêu cầu mà máy khách đưa ra là một yêu cầu, máy chủ đã hoàn thành những gì nó được giao và thành công.
3XX - Mã chuyển hướng (Redirection code): Khách hàng có thể thực hiện thêm hành động để hoàn thành yêu cầu. Thông thường, hành động bổ sung đó là chuyển hướng người dùng đến một URL khác. Nhiều HTTP response codes trong danh mục này được sử dụng để chuyển hướng URL.
4XX - Mã lỗi máy khách (Client error code): Danh mục này cho biết rằng yêu cầu không thể được thực hiện vì có lỗi đến từ máy khách. Yêu cầu có thể chứa cú pháp sai hoặc thiếu ủy quyền,... Máy chủ nên bao gồm một thực thể giải thích về tình huống lỗi (ngoại trừ khi phản hồi yêu cầu HEAD) và cho biết đó là tình trạng tạm thời hay vĩnh viễn.
5XX - Mã lỗi máy chủ (Server error code): Danh mục này cho biết máy chủ đã gặp lỗi hoặc không có khả năng thực hiện một yêu cầu hợp lệ. Máy chủ phải bao gồm một thực thể chứa giải thích về tình huống lỗi (ngoại trừ khi phản hồi yêu cầu HEAD) và cho biết đó là tình trạng tạm thời hay vĩnh viễn.
Dưới đây là các mã trạng thái phản hồi HTTP (HTTP response status codes) phổ biến nhất cho từng danh mục.
Phân loại các loại HTTP code
A. Mã thông tin (Informational code)
100 Continue
Mã 100 này cho biết rằng mọi thứ đều ổn định và trình duyệt có thể tiếp tục với yêu cầu hoặc bỏ qua nó nếu nó đã hoàn tất.
Điều này được sử dụng để thông báo cho khách hàng rằng phần ban đầu của yêu cầu đã được nhận và vẫn chưa bị máy chủ từ chối. Sau đó, trình duyệt sẽ tiếp tục bằng cách gửi phần còn lại của yêu cầu hoặc bỏ qua phản hồi này nếu yêu cầu đã được hoàn thành. Máy chủ phải gửi phản hồi cuối cùng sau khi yêu cầu được hoàn thành. Trước tiên, một trình duyệt phải bao gồm Expect: 100-continue trong tiêu đề yêu cầu trong yêu cầu ban đầu của nó, để nhận được mã trạng thái 100 Continue trong phản hồi trước khi gửi nội dung.
101 Giao thức chuyển đổi (Switching Protocols)
Với mã 101, máy chủ sẵn sàng chuyển đổi giao thức ứng dụng được sử dụng trong kết nối theo yêu cầu của trình duyệt thông qua tiêu đề “Yêu cầu nâng cấp”. Máy chủ cũng sẽ bao gồm trong phản hồi về một tiêu đề phản hồi “Nâng cấp để cho biết giao thức mà nó đã chuyển sang”.
Giao thức chỉ có thể được chuyển khi thuận lợi hơn để làm, ví dụ như chuyển sang phiên bản HTTP mới hơn so với các phiên bản cũ hơn và chuyển sang giao thức đồng bộ và thời gian thực khi cung cấp tài nguyên cần đến nó.
103 Gợi ý ban đầu (Early Hints)
HTTP response codes này được sử dụng cùng với tiêu đề liên kết để cho phép tác nhân người dùng (ví dụ: trình duyệt) bắt đầu tải trước tài nguyên trong khi máy chủ vẫn đang chuẩn bị phản hồi.
B. Mã thành công (Success code)
200 OK
Status code này cho biết rằng yêu cầu đã thành công, điều đó phụ thuộc vào phương thức yêu cầu HTTP:
GET: Tài nguyên được yêu cầu đã được truyền trong phản hồi cùng với nội dung thư. HEAD: Các tiêu đề đại diện được truyền trong phản hồi mà không có bất kỳ nội dung thông báo nào. ĐĂNG: Tài nguyên mô tả kết quả của hành động được truyền trong phản hồi. TRACE: Phản hồi chứa thông báo yêu cầu khi máy chủ nhận được.
Danh mục này cho kết quả thành công của PUT hoặc DELETE thường không phải là 200 OK, mà là 204 “No Content” hoặc 201 “Created” nếu tài nguyên được tải lên lần đầu tiên. Một phản hồi 200 có thể lưu vào bộ nhớ cache theo mặc định.
201 Created
Mã này cho biết rằng yêu cầu đã thành công và dẫn đến việc tạo ra một tài nguyên mới. Máy chủ sẽ phải tạo tài nguyên trước khi trả về 201. Tài nguyên mới được trả lại trong nội dung thư và nó có thể được đặt tại URI của yêu cầu hoặc tại nội dung của tiêu đề “Location”.
202 Accepted
Mã HTTP response codes này cho biết rằng yêu cầu đã được chấp nhận để xử lý và quá trình xử lý vẫn chưa được hoàn thành hoặc bắt đầu. Yêu cầu có thể được thực hiện hoặc không, vì nó có thể không được phép khi quá trình xử lý thực sự diễn ra.
Trạng thái 202 là phi cam kết. Mục đích của nó là cho phép máy chủ chấp nhận một yêu cầu khác cho một quá trình khác (ví dụ: quá trình batch-oriented) mà không yêu cầu kết nối của tác nhân người dùng với máy chủ vẫn tồn tại cho đến khi quá trình hoàn tất. Điều này có nghĩa là, không có cách nào để HTTP gửi status code sau đó cho biết kết quả của việc xử lý yêu cầu. Tuy nhiên, phản hồi sẽ bao gồm một chỉ báo về trạng thái hiện tại của yêu cầu và một con trỏ đến một trình theo dõi trạng thái hoặc một số ước tính về thời điểm người dùng có thể mong đợi yêu cầu được thực hiện.
203 Thông tin không có thẩm quyền (Non-Authoritative Information)
203 cho biết rằng yêu cầu đã thành công nhưng trọng tải kèm theo đã được sửa đổi bởi một proxy chuyển đổi từ phản hồi 200 OK của máy chủ gốc. Và thông tin siêu dữ liệu được trả về trong tiêu đề không phải là tập hợp chắc chắn có sẵn từ máy chủ gốc, mà được thu thập từ bản sao cục bộ hoặc bản sao của bên thứ ba. Phản hồi 203 có thể lưu vào bộ nhớ cache theo mặc định.
204 Không có nội dung (No Content)
204 cho biết rằng một yêu cầu đã thành công, nhưng không cần trả lại nội dung, do đó ứng dụng khách không cần phải điều hướng khỏi trang hiện tại của nó. Phản hồi 204 không bao gồm phần nội dung và do đó luôn được kết thúc bằng dòng trống đầu tiên sau trường tiêu đề.
Phản hồi này nhằm cho phép đầu vào cho các hành động diễn ra mà không gây ra thay đổi đối với trang đang hoạt động của trình duyệt, mặc dù bất kỳ thông tin mới hoặc cập nhật nào sẽ được áp dụng cho trang đang hoạt động của trình duyệt. Ví dụ, khi triển khai chức năng lưu và tiếp tục chỉnh sửa cho một trang wiki. Trong trường hợp này, một yêu cầu PUT sẽ được sử dụng để lưu trang và phản hồi 204 sẽ được gửi để chỉ ra rằng trình chỉnh sửa không nên được thay thế bằng một trang khác. Phản hồi 204 có thể lưu vào bộ nhớ cache theo mặc định (tiêu đề ETag được bao gồm trong phản hồi như vậy).
C. Mã chuyển hướng (Redirection code)
300 Nhiều sự lựa chọn (Multiple choices)
Mã này cho biết rằng yêu cầu có thể có nhiều hơn một phản hồi. Tác nhân người dùng hoặc người dùng nên chọn một trong số họ. Trừ khi đó là một yêu cầu HEAD, phản hồi sẽ bao gồm một danh sách các đặc điểm tài nguyên và các vị trí mà từ đó người dùng có thể chọn.
Tùy thuộc vào định dạng và khả năng của trình duyệt, việc lựa chọn thích hợp nhất có thể được thực hiện tự động. Nếu máy chủ có lựa chọn biểu diễn ưu tiên, nó sẽ bao gồm URI cụ thể cho biểu diễn đó trong trường. Vị trí và trình duyệt có thể sử dụng giá trị trường Vị trí để chuyển hướng tự động. Vì không có cách chuẩn hóa nào để chọn một trong các phản hồi, nên mã phản hồi này rất hiếm khi được sử dụng. Phản hồi 300 có thể lưu vào bộ nhớ cache theo mặc định.
301 Đã di chuyển vĩnh viễn (Moved Permanently)
Mã trạng thái này cho biết rằng tài nguyên được yêu cầu đã được chuyển hẳn sang URI vĩnh viễn mới. URI vĩnh viễn được đưa ra bởi trường “Location” trong phản hồi. Nếu phương thức yêu cầu là HEAD, phản hồi sẽ chứa một ghi chú siêu văn bản ngắn với siêu liên kết đến các URI mới. Đối với các phương thức yêu cầu không phải GET hoặc HEAD, mã trạng thái 301 sẽ không tự động chuyển hướng yêu cầu trừ khi người dùng có thể xác nhận nó, vì điều này có thể thay đổi các điều kiện mà yêu cầu được đưa ra.
Bạn chỉ nên sử dụng mã trạng thái 301 làm phản hồi cho các phương thức GET hoặc HEAD vì thay đổi phương pháp bị nghiêm cấm rõ ràng với trạng thái này và thay vào đó sử dụng Chuyển hướng vĩnh viễn 308 cho các phương thức POST. Phản hồi 301 có thể lưu vào bộ nhớ cache theo mặc định.
302 Tìm thấy (Found)
Mã HTTP response codes 302 cho biết rằng tài nguyên được yêu cầu đã tạm thời được chuyển đến URI. URI tạm thời được đưa ra bởi trường Vị trí trong phản hồi. Nếu phương thức yêu cầu là HEAD, phản hồi sẽ chứa một ghi chú siêu văn bản ngắn với siêu liên kết đến (các) URI mới. Đối với các phương thức yêu cầu không phải là GET hoặc HEAD, mã trạng thái 302 sẽ không tự động chuyển hướng yêu cầu trừ khi người dùng có thể xác nhận nó, vì điều này có thể thay đổi các điều kiện mà yêu cầu được đưa ra.
Chỉ nên sử dụng mã 302 làm phản hồi cho các phương thức GET hoặc HEAD, vì việc thay đổi phương thức bị nghiêm cấm rõ ràng đối với trạng thái này và sử dụng Chuyển hướng tạm thời 307 nếu phương thức được thay đổi khi yêu cầu chuyển hướng được thực hiện. Trong trường hợp bạn muốn phương thức được sử dụng được thay đổi thành GET, hãy sử dụng 303 See Other để thay thế. Điều này cũng hữu ích khi bạn muốn đưa ra phản hồi cho một phương thức PUT không phải là tài nguyên được tải lên mà là một thông báo xác nhận chẳng hạn như “đã tải lên thành công”. Phản hồi 302 có thể lưu vào bộ nhớ cache nếu được chỉ ra bởi trường tiêu đề Cache-Control hoặc Expires.
303 Xem Khác (See Other)
303 cho biết rằng các chuyển hướng không liên kết đến các tài nguyên mới được tải lên mà đến một trang tùy chỉnh (ví dụ: trang xác nhận hoặc trang tiến trình tải lên). Mã trạng thái này thường được gửi lại do kết quả của PUT hoặc POST. Phương thức được sử dụng để hiển thị trang được chuyển hướng này luôn là GET.
304 Không sửa đổi (Not Modified)
Mã này chỉ ra rằng không cần phải truyền lại các tài nguyên được yêu cầu. Nó là một sự chuyển hướng ngầm đến một tài nguyên được lưu trong bộ nhớ cache. Điều này xảy ra khi phương thức yêu cầu là an toàn, chẳng hạn như GET hoặc HEAD hoặc khi yêu cầu có điều kiện và sử dụng tiêu đề If-None-Match hoặc If-Modified-Since. Phản hồi như 200 OK tương đương sẽ bao gồm các tiêu đề Cache-Control, Content-Location, Date, ETag, Expires và Vary.
307 Chuyển hướng tạm thời (Temporary Redirect)
Mã 307 cho biết rằng tài nguyên được yêu cầu đã tạm thời được chuyển đến URI. URI tạm thời được đưa ra bởi trường Location trong phản hồi. Sự khác biệt duy nhất giữa 307 và 302 Found là 307 đảm bảo rằng phương thức và nội dung sẽ không bị thay đổi khi yêu cầu chuyển hướng được thực hiện. Đối với các yêu cầu GET, hành vi 302 và 307 là giống hệt nhau. Hành vi với các phương thức không phải GET và 302 Found sau đó không thể đoán trước được trên website, trong khi hành vi với 307 là có thể dự đoán được.
Trong trường hợp người dùng muốn phương thức được sử dụng được thay đổi thành GET, hãy sử dụng 303 See Other để thay thế. Điều này cũng hữu ích khi bạn muốn đưa ra câu trả lời cho phương thức PUT không phải là tài nguyên được tải lên mà là thông báo xác nhận (như “bạn đã tải lên thành công”).
308 Chuyển hướng vĩnh viễn (Permanent Redirect)
Mã HTTP response codes này cho biết rằng tài nguyên được yêu cầu đã được chuyển đến URI. URI vĩnh viễn được đưa ra bởi trường Vị trí trong phản hồi. Phương thức yêu cầu và nội dung sẽ không bị thay đổi, trong khi 301 đôi khi có thể không chính xác được thay đổi thành phương thức GET.
D. Mã lỗi máy khách (Client error code)
400 Yêu cầu Không hợp lệ (Bad Request)
Mã 400 chỉ ra rằng máy chủ không thể xử lý yêu cầu do lỗi ở phía máy khách, chẳng hạn cú pháp yêu cầu không đúng định dạng, khung thông báo yêu cầu không hợp lệ hoặc định tuyến yêu cầu lừa đảo. Khách hàng được khuyến cáo không lặp lại yêu cầu trừ khi thực hiện các sửa đổi.
401 Trái phép (Unauthorized)
Mã HTTP response codes này cho biết rằng yêu cầu chưa được áp dụng vì nó thiếu thông tin xác thực hợp lệ cho tài nguyên đích. Trạng thái này được gửi cùng với tiêu đề WWW-Authenticate chứa thông tin về cách cấp quyền chính xác. Với mã trạng thái này, có thể lặp lại yêu cầu bằng cách bao gồm xác thực để truy cập tài nguyên đích. Trạng thái này tương tự như 403, nhưng trong trường hợp này, có thể xác thực.
402 Yêu cầu Thanh toán (Payment Required)
Mã 402 là một lỗi máy khách không chuẩn và được dành để sử dụng trong tương lai. Ban đầu nó được tạo ra để kích hoạt hệ thống thanh toán hoặc tiền mặt kỹ thuật số và sẽ chỉ ra rằng yêu cầu không thể được xử lý cho đến khi khách hàng thực hiện thanh toán. Tuy nhiên, không có quy ước sử dụng tiêu chuẩn nào tồn tại và các thực thể khác nhau sử dụng nó trong các ngữ cảnh khác nhau.
403 Bị cấm (Forbidden)
403 chỉ ra rằng máy chủ đã hiểu yêu cầu nhưng từ chối nó. Trạng thái này tương tự như 401 Unauthorized, nhưng trong trường hợp này, việc xác thực lại sẽ không có gì khác biệt, vì vậy không cần lặp lại yêu cầu. Quyền truy cập bị cấm vĩnh viễn và gắn liền với logic ứng dụng, chẳng hạn như không đủ quyền đối với tài nguyên. Đối với bất kỳ phương thức yêu cầu nào ngoại trừ HEAD, nếu máy chủ muốn lý do từ chối có sẵn cho máy khách, thì 403 có thể được sử dụng. Tuy nhiên, nếu máy chủ không muốn cung cấp thông tin này, thì 404 Not Found có thể được sử dụng để thay thế.
404 Không tìm thấy (Not Found)
Mã 404 chỉ ra rằng máy chủ không thể tìm thấy bất kỳ thứ gì phù hợp với URI Request. Các liên kết dẫn đến trang 404 thường được gọi là liên kết bị hỏng hoặc liên kết chết. Không có dấu hiệu cho biết tình trạng này là tạm thời hay vĩnh viễn. Nhưng nếu máy chủ biết rằng tài nguyên bị xóa vĩnh viễn, thì trạng thái 410 Gone nên được sử dụng thay vì trạng thái 404. Mã trạng thái này cũng thường được sử dụng khi máy chủ không muốn tiết lộ chính xác lý do tại sao yêu cầu bị từ chối hoặc khi không có phản hồi nào khác được áp dụng. Phản hồi 404 có thể lưu vào bộ nhớ cache theo mặc định.
405 Phương thức không được cho phép (Method Not Allowed)
Mã HTTP response codes 405 chỉ ra rằng phương thức yêu cầu được máy chủ biết nhưng không được hỗ trợ bởi tài nguyên đích. Phương thức được chỉ định trong Request-Line không được phép đối với tài nguyên được xác định bởi Request-URI. Máy chủ phải tạo trường tiêu đề Allow chứa danh sách các phương pháp được hỗ trợ cho tài nguyên được yêu cầu. Phản hồi 405 có thể lưu vào bộ nhớ cache theo mặc định.
480 Hết thời gian yêu cầu (Request Timeout)
Với 480, mã này cho biết máy chủ muốn tắt kết nối không sử dụng này, vì yêu cầu đã vượt quá thời gian máy chủ chuẩn bị chờ. Khách hàng có thể lặp lại yêu cầu mà không cần sửa đổi bất kỳ lúc nào sau này. Máy chủ sẽ gửi trường tiêu đề “close” trong phản hồi, vì 408 ngụ ý rằng máy chủ đã quyết định đóng kết nối thay vì tiếp tục chờ đợi.
409 Xung đột (Conflict)
409 cho biết một yêu cầu không thể được hoàn thành do xung đột với trạng thái hiện tại của tài nguyên đích. Mã này được phép trong các tình huống mà khách hàng có thể giải quyết xung đột và gửi lại yêu cầu. Do đó, cơ quan phản hồi nên cung cấp đủ thông tin để khách hàng nhận ra nguồn gốc của xung đột.
Điều này rất có thể xảy ra để đáp ứng yêu cầu PUT. Ví dụ: bạn có thể nhận được phản hồi 409 khi tải lên tệp cũ hơn tệp đã có trên máy chủ, dẫn đến xung đột kiểm soát phiên bản. Trong trường hợp này, phản hồi phải chứa danh sách sự khác biệt giữa hai phiên bản theo định dạng được xác định bởi Content-Type (loại nội dung) phản hồi.
**410 Gone **
Mã trạng thái này chỉ ra rằng quyền truy cập vào tài nguyên đích không còn tồn tại vĩnh viễn tại máy chủ gốc và không có địa chỉ chuyển tiếp nào được biết đến. Nếu chủ sở hữu máy chủ không biết liệu tình trạng này là tạm thời hay vĩnh viễn, thì 404 nên được sử dụng thay thế.
Phản hồi 410 chủ yếu nhằm hỗ trợ nhiệm vụ bảo trì website bằng cách thông báo cho khách hàng rằng tài nguyên cố ý không khả dụng và chủ sở hữu máy chủ mong muốn rằng các liên kết từ xa đến tài nguyên đó bị xóa. Sự kiện như vậy thường xảy ra đối với các dịch vụ khuyến mại có thời hạn và đối với các tài nguyên thuộc về các cá nhân không còn hoạt động tại trang web của máy chủ. Phản hồi 410 có thể lưu vào bộ nhớ cache theo mặc định.
414 URI quá dài
414 chỉ ra rằng máy chủ từ chối xử lý yêu cầu vì URI Yêu cầu do máy khách cung cấp dài hơn máy chủ sẵn sàng hiểu.
Có một số điều kiện khi điều này có thể xảy ra: Khi khách hàng đã chuyển đổi không đúng yêu cầu POST thành yêu cầu GET với thông tin truy vấn dài, khi khách hàng đã chuyển sang một vòng lặp chuyển hướng (ví dụ: tiền tố URI được chuyển hướng trỏ đến một hậu tố của chính nó) hoặc khi máy chủ đang bị tấn công bởi một máy khách cố gắng khai thác các lỗ hổng bảo mật tiềm ẩn. Phản hồi 414 có thể lưu vào bộ nhớ cache theo mặc định.
415 Loại phương tiện không được hỗ trợ (Unsupported Media Type)
415 cho biết máy chủ từ chối chấp nhận yêu cầu vì định dạng tải trọng ở định dạng không được hỗ trợ. Vấn đề về định dạng có thể là do Content-Type (loại nội dung) hoặc Content-Encoding (mã hóa nội dung) được chỉ định trong yêu cầu hoặc do việc kiểm tra dữ liệu trực tiếp.
429 Quá tải yêu cầu (Too Many Requests)
Mã HTTP response codes này cho biết người dùng đã gửi quá nhiều yêu cầu trong một khoảng thời gian nhất định (giới hạn tốc độ). Các biểu diễn phản hồi có thể bao gồm các chi tiết giải thích điều kiện và tiêu đề “Thử lại sau” cho biết thời gian chờ đợi trước khi đưa ra yêu cầu mới. Tuy nhiên, khi một máy chủ đang bị tấn công hoặc chỉ nhận được một số lượng rất lớn yêu cầu từ một bên, việc phản hồi từng yêu cầu bằng mã trạng thái 429 sẽ tiêu tốn tài nguyên, do đó có thể thích hợp hơn nếu chỉ ngắt kết nối hoặc thực hiện các bước khác.
E. Mã lỗi máy chủ (Server error code)
500 Lỗi máy chủ nội bộ (Internal Server Error)
Lỗi 500 chỉ ra rằng máy chủ gặp phải tình trạng không mong muốn khiến máy chủ không thể thực hiện yêu cầu. Phản hồi lỗi này thường được sử dụng như một phản hồi chung chung bắt tất cả chỉ ra rằng máy chủ không thể tìm thấy mã trạng thái 5xx tốt hơn để phản hồi. Đôi khi, quản trị viên máy chủ ghi lại các phản hồi lỗi như mã trạng thái 500 với nhiều chi tiết hơn về yêu cầu để ngăn lỗi xảy ra lần nữa trong tương lai. ** 501 Không được triển khai (Not Implemented)**
Mã trạng thái này có nghĩa là máy chủ không hỗ trợ chức năng cần thiết để thực hiện yêu cầu. Trạng thái này cũng có thể gửi tiêu đề “Thử lại” sau khi cho khách hàng biết khi nào cần kiểm tra lại để xem chức năng đó có được hỗ trợ hay không. Mã 501 không phải là thứ có thể sửa được, nhưng yêu cầu bản sửa lỗi của máy chủ web mà bạn đang cố gắng truy cập.
Đây là phản hồi thích hợp khi máy chủ không nhận ra phương thức yêu cầu và không có khả năng hỗ trợ nó cho bất kỳ tài nguyên nào. Các phương thức duy nhất mà máy chủ được yêu cầu để hỗ trợ là GET và HEAD và do đó không được trả về 501. Nếu máy chủ nhận ra phương thức, nhưng cố tình không hỗ trợ nó, phản hồi thích hợp là phương thức 405. Phản hồi 501 có thể lưu vào bộ nhớ cache theo mặc định, trừ khi các tiêu đề bộ nhớ đệm hướng dẫn khác.
502 Bad Gateway
Mã trạng thái này chỉ ra rằng máy chủ, trong khi hoạt động như một cổng hoặc proxy, đã nhận được phản hồi không hợp lệ từ máy chủ nguồn khi cố gắng thực hiện yêu cầu. Mã 502 không phải là thứ có thể sửa được, nhưng yêu cầu bản sửa lỗi của máy chủ web hoặc proxy mà bạn đang cố gắng truy cập.
503 Dịch vụ không khả dụng (Service Unavailable)
Lỗi 503 cho biết máy chủ hiện không khả dụng và không sẵn sàng xử lý bất kỳ yêu cầu nào do máy chủ tạm thời quá tải hoặc bảo trì. Phản ứng này được sử dụng như một biện pháp tạm thời, dự kiến sẽ được giảm bớt sau một thời gian. Cùng với phản hồi này, tiêu đề “Thử lại” phải chứa thời gian ước tính để khôi phục dịch vụ và trang thân thiện với người dùng giải thích sự cố cũng nên được bao gồm. Nếu không có yêu cầu“Thử lại”, máy khách nên xử lý phản hồi như đối với phản hồi 500.
504 Gateway Timeout
Mã trạng thái này cho biết rằng máy chủ, trong khi hoạt động như một cổng hoặc proxy, đã không nhận được phản hồi kịp thời từ máy chủ nguồn do URI chỉ định (ví dụ: HTTP, FTP, LDAP) hoặc một số máy chủ phụ trợ khác (ví dụ: DNS) khi cố gắng thực hiện yêu cầu. Mã 504 thường không thể sửa được, mà yêu cầu bản sửa lỗi của máy chủ web hoặc proxy mà bạn đang cố gắng truy cập.
Kết luận
Phía trên là tập hợp tất cả những danh mục HTTP response codes phổ biến nhất hiện nay. Dù dùng HTTP codes như thế nào thì cũng cần có sự thống nhất để yêu cầu từ máy chủ được máy khách hiểu và làm theo đúng ý nghĩa. Mong rằng các bạn đã có đầy đủ kiến thức tổng quan về những loại HTTP response codes sau bài viết này.
Nếu bạn đang quan tâm đến HTTP response codes và muốn trải nghiệm giải pháp bảo mật website thông minh của VNIS, hãy để lại thông tin liên hệ tại form bên dưới hoặc gọi ngay về hotline: (028) 7306 8789.
Mục Lục