JSP - Mã trạng thái Http

Trong chương này, chúng ta sẽ thảo luận về Mã trạng thái Http trong JSP. Định dạng của yêu cầu HTTP và thông báo phản hồi HTTP tương tự nhau và sẽ có cấu trúc sau:

  • Dòng trạng thái ban đầu + CRLF (Chuyến xe trở lại + Nguồn cấp hàng tức là. Dòng mới)

  • Không hoặc nhiều dòng tiêu đề + CRLF

  • Một dòng trống tức là. một CRLF

  • Nội dung thư tùy chọn như tệp, dữ liệu truy vấn hoặc đầu ra truy vấn.

Ví dụ: tiêu đề phản hồi của máy chủ trông giống như sau:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
   (Blank Line)
<!doctype ...>

<html>
   <head>...</head>
   
   <body>
      ...
   </body>
</html>

Dòng trạng thái bao gồm HTTP version (HTTP/1.1 in the example), mã trạng thái (trong ví dụ là 200) và một thông báo rất ngắn tương ứng với mã trạng thái (OK in the example).

Bảng sau liệt kê các mã trạng thái HTTP và các thông báo liên quan có thể được trả về từ Máy chủ Web -

Thông điệp Sự miêu tả
100 Tiếp tục Máy chủ mới chỉ nhận được một phần yêu cầu, nhưng miễn là nó chưa bị từ chối, máy khách nên tiếp tục với yêu cầu
101 Chuyển đổi giao thức Máy chủ chuyển giao thức.
200 đồng ý Yêu cầu là OK
201 Tạo Yêu cầu đã hoàn tất và một tài nguyên mới được tạo 
202 Đã được chấp nhận Yêu cầu được chấp nhận để xử lý, nhưng quá trình xử lý chưa hoàn tất.
203 Thông tin không có thẩm quyền
204 Không có nội dung
205 Đặt lại nội dung
206 Nội dung một phần
300 Nhiều lựa chọn Một danh sách liên kết; người dùng có thể chọn một liên kết và đi đến vị trí đó. Tối đa năm địa chỉ.
301 Đã di chuyển vĩnh viễn Trang được yêu cầu đã chuyển sang một url mới.
302 Tìm Trang được yêu cầu đã tạm thời chuyển sang một url mới.
303 Xem Khác Trang được yêu cầu có thể được tìm thấy dưới một url khác.
304 Không sửa đổi
305 Sử dụng Proxy
306 Không sử dụng Mã này đã được sử dụng trong phiên bản trước. Nó không còn được sử dụng nữa, nhưng mã đã được bảo lưu.
307 Chuyển hướng tạm thời Trang được yêu cầu đã tạm thời chuyển sang một url mới.
400 Yêu cầu không hợp lệ Máy chủ không hiểu yêu cầu.
401 Không được phép Trang được yêu cầu cần có tên người dùng và mật khẩu.
402 yêu cầu thanh toán Bạn chưa thể sử dụng mã này.
403 Bị cấm Truy cập bị cấm vào trang được yêu cầu
404 Không tìm thấy Máy chủ không thể tìm thấy trang được yêu cầu.
405 Phương pháp không được phép Phương thức được chỉ định trong yêu cầu không được phép.
406 Không thể chấp nhận Máy chủ chỉ có thể tạo phản hồi không được máy khách chấp nhận.
407 Yêu cầu xác thực proxy Bạn phải xác thực bằng máy chủ proxy trước khi yêu cầu này có thể được phục vụ.
408 Hết thời gian yêu cầu Yêu cầu mất nhiều thời gian hơn máy chủ đã chuẩn bị để chờ.
409 Cuộc xung đột Không thể hoàn thành yêu cầu do xung đột.
410 Không còn Trang được yêu cầu không còn nữa.
411 Chiều dài yêu cầu "Nội dung-Độ dài" không được xác định. Máy chủ sẽ không chấp nhận yêu cầu nếu không có nó.
412 Điều kiện tiên quyết không thành công Điều kiện tiên quyết được đưa ra trong yêu cầu được máy chủ đánh giá là false.
413 Yêu cầu thực thể quá lớn Máy chủ sẽ không chấp nhận yêu cầu vì thực thể yêu cầu quá lớn.
414 Url yêu cầu quá dài Máy chủ sẽ không chấp nhận yêu cầu do url quá dài. Điều này xảy ra khi bạn chuyển đổi một yêu cầu "đăng" thành một yêu cầu "nhận" với một thông tin truy vấn dài.
415 Loại phương tiện không được hỗ trợ Máy chủ sẽ không chấp nhận yêu cầu, vì loại phương tiện không được hỗ trợ.
417 Kỳ vọng không thành công
500 Lỗi máy chủ nội bộ Yêu cầu đã không được hoàn thành. Máy chủ gặp tình trạng không mong muốn.
501 Không được thực hiện Yêu cầu đã không được hoàn thành. Máy chủ không hỗ trợ chức năng được yêu cầu.
502 Cổng xấu Yêu cầu đã không được hoàn thành. Máy chủ nhận được phản hồi không hợp lệ từ máy chủ ngược dòng.
503 dịch vụ Không sẵn có Yêu cầu đã không được hoàn thành. Máy chủ tạm thời quá tải hoặc ngừng hoạt động.
504 Cổng Time-out Cổng vào đã hết thời gian.
505 Phiên bản HTTP không được hỗ trợ Máy chủ không hỗ trợ "http protocol" phiên bản.

Phương pháp đặt mã trạng thái HTTP

Các phương pháp sau có thể được sử dụng để đặt Mã trạng thái HTTP trong chương trình servlet của bạn. Các phương thức này có sẵn với đối tượng HttpServletResponse .

Không. Phương pháp & Mô tả
1

public void setStatus ( int statusCode )

Phương thức này đặt một mã trạng thái tùy ý. Phương thức setStatus nhận một int (mã trạng thái) làm đối số. Nếu phản hồi của bạn bao gồm một mã trạng thái đặc biệt và một tài liệu, hãy nhớ gọisetStatustrước khi thực sự trả lại bất kỳ nội dung nào bằng PrintWriter .

2

public void sendRedirect(String url)

Phương thức này tạo phản hồi 302 cùng với tiêu đề Vị trí cung cấp URL của tài liệu mới.

3

public void sendError(int code, String message)

Phương thức này sẽ gửi một mã trạng thái (thường là 404) cùng với một thông báo ngắn được định dạng tự động bên trong tài liệu HTML và được gửi đến máy khách.

Ví dụ về mã trạng thái HTTP

Ví dụ sau đây cho thấy cách mã lỗi 407 được gửi đến trình duyệt máy khách. Sau đó, trình duyệt sẽ hiển thị cho bạn "Need authentication!!!" thông điệp.

<html>
   <head>
      <title>Setting HTTP Status Code</title>
   </head>
   
   <body>
      <%
         // Set error code and reason.
         response.sendError(407, "Need authentication!!!" );
      %>
   </body>
</html>

Bạn sẽ nhận được kết quả sau:

HTTP Status 407 - Need authentication!!!

type Status report

message Need authentication!!!

description The client must first authenticate itself with the proxy (Need authentication!!!).

Apache Tomcat/5.5.29

Để trở nên thoải mái hơn với các mã trạng thái HTTP, hãy thử đặt các mã trạng thái khác nhau và mô tả của chúng.