发布于 2015-08-17 14:44:05 | 294 次阅读 | 评论: 0 | 来源: 网络整理

在HTTP请求和HTTP响应消息的格式是类似的,将有以下结构:

  • 初始状态行+ CRLF(回车+换行即,换行)

  • 零个或多个标题行 + CRLF

  • 一个空行 ie. a CRLF

  • 一个可选的消息体,如文件,查询数据或查询输出。

例如,服务器的响应头如下所示:


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

状态行包含HTTP版本(HTTP/1.1中的例子),一个状态码(200中的例子),以及相应的状态码(确定在本例中),在很短的消息。

以下是HTTP状态码和可能从Web服务器返回相关的信息的列表:

Code: Message: Description:
100 Continue Only a part of the request has been received by the server, but as long as it has not been rejected, the client should continue with the request
101 Switching Protocols The server switches protocol.
200 OK The request is OK
201 Created The request is complete, and a new resource is created 
202 Accepted The request is accepted for processing, but the processing is not complete.
203 Non-authoritative Information  
204 No Content  
205 Reset Content  
206 Partial Content  
300 Multiple Choices A link list. The user can select a link and go to that location. Maximum five addresses  
301 Moved Permanently The requested page has moved to a new url 
302 Found The requested page has moved temporarily to a new url 
303 See Other The requested page can be found under a different url 
304 Not Modified  
305 Use Proxy  
306 Unused This code was used in a previous version. It is no longer used, but the code is reserved.
307 Temporary Redirect The requested page has moved temporarily to a new url.
400 Bad Request The server did not understand the request
401 Unauthorized The requested page needs a username and a password
402 Payment Required You can not use this code yet
403 Forbidden Access is forbidden to the requested page
404 Not Found The server can not find the requested page.
405 Method Not Allowed The method specified in the request is not allowed.
406 Not Acceptable The server can only generate a response that is not accepted by the client.
407 Proxy Authentication Required You must authenticate with a proxy server before this request can be served.
408 Request Timeout The request took longer than the server was prepared to wait.
409 Conflict The request could not be completed because of a conflict.
410 Gone The requested page is no longer available.
411 Length Required The "Content-Length" is not defined. The server will not accept the request without it.
412 Precondition Failed The precondition given in the request evaluated to false by the server.
413 Request Entity Too Large The server will not accept the request, because the request entity is too large.
414 Request-url Too Long The server will not accept the request, because the url is too long. Occurs when you convert a "post" request to a "get" request with a long query information.
415 Unsupported Media Type The server will not accept the request, because the media type is not supported.
417 Expectation Failed  
500 Internal Server Error The request was not completed. The server met an unexpected condition
501 Not Implemented The request was not completed. The server did not support the functionality required.
502 Bad Gateway The request was not completed. The server received an invalid response from the upstream server
503 Service Unavailable The request was not completed. The server is temporarily overloading or down.
504 Gateway Timeout The gateway has timed out.
505 HTTP Version Not Supported The server does not support the "http protocol" version.

设置HTTP状态代码的方法:

有以下方法可用于设置HTTP状态代码中的Servlet程序。这些方法可用HttpServletResponse对象。

S.N. 方法 & 描述
1 public void setStatus ( int statusCode )
This method sets an arbitrary status code. The setStatus method takes an int (the status code) as an argument. If your response includes a special status code and a document, be sure to call setStatus before actually returning any of the content with the PrintWriter.
2 public void sendRedirect(String url)
This method generates a 302 response along with a Location header giving the URL of the new document.
3 public void sendError(int code, String message)
This method sends a status code (usually 404) along with a short message that is automatically formatted inside an HTML document and sent to the client.

HTTP 状态码实例:

以下是这将发送407错误代码给客户端的浏览器和浏览器会显示范例“需要身份验证!”消息。


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

现在,调用上面的JSP将显示以下结果:

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

关于HTTP状态码,你可以尝试设置不同的状态代码及其说明。

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务