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 -
Mã | 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.