服务器状态码的一些说明 经典的404还有说明呢?

本文详细解析了HTTP状态码的意义及用途,从100系列到500系列,包括每种状态码的具体应用场景,如200 OK表示请求成功,404 Not Found表示资源未找到等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package endual;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

/**

 * 100-199 表示的是信息性的,标示客户应该采取的其他动作

 * 200-299 表示的是请求成功了

 * 300-399 表示的值用于那些已经移走的文件,常常包括location报头,指出新的地址

 * 400-499 表示的是由于客户端引起的

 * 500-599 表明由客户引发的错误

 * 

 * 100 Continue 继续

 * 如果服务器接收到的值是100-continue的Expect的请求报头,这表示客户程序在询问是否可以在随后的

 * 请求中发送附属文档。这种情况下,服务器应该以状态100回应,告诉客户程序继续下去。或者使用417告诉浏览器

 * 不接收该文档,这是http1.1新引人的

 * 

 * 200 表示OK

 * 200表示一切正常,如果是get和post 那么文档后面就跟在后面,对于serlet,这是默认值,如果没有调用setStatus,那么默认值就是200了

 * 

 * 202 Acceoted 已经接收

 * 202告诉客户请求已经接收了 但处理尚未完成

 * 

 * 204 No Content, 没有新的文档

 * 状态代码 204 要求浏览器继续显示之前的文档,因为没有新的文档,如果用户周期性的单击reload按钮来重新

 * 载入页面,那么这个行为就比较有用,您可要确定前面的页面已经是最新的了

 * 

 * 205 重置内容

 * 表示没有心的文档,但是浏览器应该重置文档视图,因此这个状态代码用来指示游览器消除表单的字段。它是HTTP1.1新引人

 * 的状态的代码

 * 

 * 301 表示文档被移动到别的地方,文档的新URL在location响应报头中给出,浏览器应该依据这个链接跳转到新的url

 * 

 * 302 找到

 * 这个值类似于301 只是原则上应该将location报头给出的url看做是非永久性的临时代替,在实际中,大多数的浏览器都是等同的对待301和302

 * 

 * 307类似

 *  400 错误的请求

 *  400 表示的是客户请求中含有语法的错误

 *  401 为授权

 *  401表示的是客户程序视图访问密码保护的页面,但是在请求的authorization的报头中没有正确的身份标示信息。

 *  相应必须www-authenticate报头。

 *  403 资源不可用

 *  状态代码403 表示服务器拒绝提供相关的资源,不管是否拥有授权,这个状态常常是由服务器上文件或者目录的许可权限到导致的

 *  

 *  404 未找到

 *  页面没有。在给定的地址找补到任何的资源。这个值的标准的no such page相应。由于这个相应太过常用而且有效,因此在httpservletrespones

 *  类中为它提供了一个专门的方法,就是sendError("message")。

 *  

 *  405 方法不允许

 *  405表示的值,这个特定资源不预习使用该方法请求,get post head put delete 这是1.1新引人的代码

 *  417 期望不能满足

 *  如果服务器接收到的值为100-continue的Excep请求报头,那么表示客户程序在询问是否可以在后续的请求中发送附加的文档。

 *  500 服务器内部错误了,服务器内部陷入了混论的不正常的代码 它常常是由于cgi程序或servlet崩溃或饭后格式不正确的报头而造成的

 *  

 *  501 未实现

 *  501 状态通知客户程序,服务器不支持能够满足该请求的功能,它用于表示服务器不支持客户程序的命令,比如put

 *  

 *  503 服务器不可以用

 *  状态代码503表示,由于维护工作或者是超负荷工作,服务器不能做出相应,例如如果线程池或者数据库连接池当前被全部占有那么servklet

 *  可能就要返回这个报头了

 *  

 *  505 不支持http版本

 *  505代码表示服务器不支持请求行中给出的http版本,这是http1.1引入的状态代码

 * 

 * @author Endual

 *

 */

public class SetStatueServlet extends HttpServlet {

 

/**

* The doGet method of the servlet. <br>

*

* This method is called when a form has its tag value method equals to get.

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

 

response.setContentType("text/html");

/**

* 设置的是任意的状态代码的,需要使用的是setStatus方法。如果相应的是状态代码比较特殊,并且伴有相关的文档内容

* 那一定要再用printWriter实际返回任何内容之前调用setStatus,之所以需要这样做,是因为http请求的有状态行,一个或者多个

* 行头,一个空行,以及实际的文档安装比较理出的次序组成的

*/

response.setStatus(1440) ;

/**

* 虽然设置状态代码的调用方法是直接调用的response.setStatue(int)

* 但是,httpServletRespone专门为两种常见的情况提供了快捷的方法。

* 需要注意的是,这两个方法都是抛出的是IOException异常,而setStatue不会

* 由于doGet和doPost方法拍抛出的是IOException因此仅当将相应对象床单给其他方法的时候,才需要注意这样昂的情况

*/

response.sendRedirect("") ; //命令游览器连接到新的位子中,生成302相应以及location报头,给出新的文档的url

response.sendError(100) ; // 状态404用于服务器没有找到文档的情况。sendError方法发送状态代码以及一小段简短的消息,而这个消息会被自动安排到html文档中发送给客户的

PrintWriter out = response.getWriter();

out

.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

out.println("<HTML>");

out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");

out.println("  <BODY>");

out.print("    This is ");

out.print(this.getClass());

out.println(", using the GET method");

out.println("  </BODY>");

out.println("</HTML>");

out.flush();

out.close();

}

 

/**

* The doPost method of the servlet. <br>

*

* This method is called when a form has its tag value method equals to post.

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

 

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out

.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

out.println("<HTML>");

out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");

out.println("  <BODY>");

out.print("    This is ");

out.print(this.getClass());

out.println(", using the POST method");

out.println("  </BODY>");

out.println("</HTML>");

out.flush();

out.close();

}

 

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值