以下内容引用自http://wiki.jikexueyuan.com/project/jsp/http-status-codes.html

HTTP请求格式和HTTP响应消息的格式一样,都有以下结构:

  • 一个初始状态行+CRLF(回车+换行,即新行)
  • 零个或多个标题行+CRLF
  • 一个空行,即一个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)和对应状态代码的短消息(例子中的OK)。

下面是HTTP状态代码和相关可能从Web服务器返回的消息的一个列表:

编码: 消息: 描述:
100 Continue 只有一部分的服务器请求已经收到,但只要没有被拒绝,客户端应该继续请求
101 Switching Protocols 服务器交换了协议。
200 OK 请求是OK
201 Created 请求已经完成,新的资源被创建  
202 Accepted 请求被接受处理,但是处理还没有完成。
203 Non-authoritative Information  
204 No Content  
205 Reset Content  
206 Partial Content  
300 Multiple Choices 一个链接列表。用户可以选择一个链接然后跳转到那个位置。最多可选择5个地址  
301 Moved Permanently 请求页面已经被移到新的URL中 
302 Found 请求页面暂时被移到新的URL中 
303 See Other 请求页面可在不同的URL中找到 
304 Not Modified  
305 Use Proxy  
306 Unused 该代码是在前一版本使用的。它已不再使用,但该代码保留下来了。
307 Temporary Redirect 请求页面被暂时移到新的URL中。
400 Bad Request 服务器没有理解请求。
401 Unauthorized 请求页面需要用户名和密码
402 Payment Required 不能使用这个代码
403 Forbidden 不允许访问请求页面
404 Not Found 服务器找不到请求页面。
405 Method Not Allowed 在请求中指定的方法不允许使用。
406 Not Acceptable 服务器只能生成一个不被客户端接收的响应。
407 Proxy Authentication Required 在这个请求得到服务之前,必须验证一个代理服务器。
408 Request Timeout 请求花费的时间比服务器准备等待的时间长。
409 Conflict 由于冲突请求不能实现。
410 Gone 请求页面不再可用。
411 Length Required "内容-长度" 没有被定义。没有它服务器不会接受请求。
412 Precondition Failed 服务器给出给定的请求评估的前提为假。
413 Request Entity Too Large 服务器不会接受请求,因为请求实体太大。
414 Request-url Too Long 服务器不会接受请求,因为URL太长。当把“POST”请求转换为带有很长的查询信息的“GET”请求时,这种情况就会发生
415 Unsupported Media Type 服务器不会接受请求因为媒体类型不支持。
417 Expectation Failed  
500 Internal Server Error 请求未完成。服务器遇到了意外情况。
501 Not Implemented 请求未能完成。服务器不支持所需的功能。
502 Bad Gateway 请求未能完成。服务器从上游服务器收到无效响应
503 Service Unavailable 请求未能完成。服务器暂时过载或瘫痪。
504 Gateway Timeout 网关超时。
505 HTTP Version Not Supported 服务器不支持“HHTP协议”版本。

设置HTTP状态码的方法:

有以下方法可以用来设置 servlet 程序的 HTTP 状态码。有了 HttpServletResponse 对象,这些方法都是可用的。

方法  描述
public void setStatus ( int statusCode ) 此方法设置一个任意的状态码。setStatus方法接受一个 int(状态码)作为参数。如果响应包含一个特殊的状态码和文档,在实际中用PrintWriter返回任何内容之前一定要调用setStatus。
public void sendRedirect(String url) 该方法生成一个302响应以及一个位置标题给出新文档的URL。
public void sendError(int code, String message) 这种方法发送一个状态码(通常是404)以及一个在HTML文档内自动格式化的短消息并发送到客户端。

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将显示如下所示的结果:

测试工程:https://github.com/easonjim/5_java_example/tree/master/jspbasics/test6

JSP中HTTP状态码的更多相关文章

  1. 19.在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?)写出http常见的状态码和含义,至少5个.[完善题目]

    状态401代表未被授权,header("Location:www.xxx.php"); 100-199 用于指定客户端应相应的某些动作. 200-299 用于表示请求成功. 300 ...

  2. 网站建设中HTTP状态码的奥秘

    在网络营销中,站长经常会遇到一些HTTP状态码的问题,不懂HTTP状态码那么做SEO优化就无从谈起,下面是脉凌网络对HTTP状态码总结的一览表. 1xx:请求收到,继续处理 2xx:操作成功收到,分析 ...

  3. php笔记06:http响应中的状态码

    首先我们看一个360浏览器中使用开发截图如下: 上面的Status Code:  OK (这个就是状态码) 1.状态码主要用于服务器对请求的处理结果,它是一个三位的十进制数.响应状态码分为5类,如下所 ...

  4. 关于 RESTful API 中 HTTP 状态码的定义

    最近正好使用了一会儿 Koa ,在这说一下自己对各个 请求码的见解和使用场景,懒人直接看 200.400.401.403.404.500 就可以了. 其中 2XX/3XX 其实都是请求成功,但是结果不 ...

  5. http协议中的状态码(status code),超文本传输协议状态码

    HTTP协议,又叫超文本传输协议. 在项目的开发过程中,前后端交互,这个用的是最多的,在后端给我的的接口调用时,我们往往先查看这个协议的状态码,状态码正常了,才进一步去看我们从后太拿的数据,是否为我们 ...

  6. JSP常见的状态码

    1.404错误 -- 找不到访问的页面或资源 a.URL输入错误: b.未部署项目. 2.500错误 -- JSP页面代码有错误 3.302状态码+200状态码 -- 重定向 4.200状态码 -- ...

  7. Shell中退出状态码exit

    shell中运行的每个命令都使用退出状态码(exit status)来告诉shell它完成了处理.退出状态码是一个0~255之间的整数值,在命令结束时由命令传回shell. 1 .查看退出状态码 Li ...

  8. HTTP/1.0中,状态码200 301 304 403 404 500的含义?

    200 OK 服务器成功处理了请求 301 重定向,请求的URL已移走 304未修改,客户的缓存资源是最新的,要客户端使用缓存 403禁止,请求被服务器拒绝了 404未找到资源 500内部服务器错误, ...

  9. HTTP状态码302、303和307的故事

        今日读书,无法理解HTTP302.303.307状态码的来龙去脉,决定对其做深究并总结于本文.       <HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有 ...

随机推荐

  1. 用vue写的移动端车牌号输入法

    效果图: (录制了视频演示,然而不会上传.....心塞.....) 本页面所在项目已上传GitHub,github下载地址:https://github.com/dan-Zd/car-vueapp  ...

  2. java.lang.String 字符串操作

    1.获取文件名 //获取文件名,即就是去掉文件的后缀 /** * mypic.jpg * 获取文件名 * 1. 先找到"."的位置 * 2. 从第一个字符开始截取到".& ...

  3. 合并百度影音的离线数据 with python 2.1 bdv格式的更新

    最近百度影音的离线下载文件,格式有新变化. 经过分析,是bdv格式又有新格式,从最初的bdv0001,到bdv.config 的file....,这次更新的格式是直接包含一个片段,其中还有使用guid ...

  4. A C compiler that parses this code will contain at least the following symbol table entries

    A C compiler that parses this code will contain at least the following symbol table entries Consider ...

  5. WebDAV协议

    WebDAV是一项基于 Http1.1 协议的通信协议.它扩展了HTTP 1.1,在Get.Post.Put.Delete 等HTTP标准方法外添加了新方法,使应用程序可对Web Server直接读写 ...

  6. C++ 线程同步的四种方式

    程之间通信的两个基本问题是互斥和同步. (1)线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒. (2)线程互 ...

  7. vue的[__ob__: Observer]

    为什么会获取不到里面的值 因为:vue data 里面值都是有这个属性的.这是被vue接管的数据,observer是Vue核心中最重要的一个模块(个人认为),能够实现视图与数据的响应式更新,底层全凭o ...

  8. No-6.If语句

    判断(if)语句 01. 开发中的应用场景 生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?…… 程序中的判断 if 今天发工资: 先还信用卡的钱 if 有剩余: 又可 ...

  9. 将java project打包成jar包,web project 打包成war包的几种演示 此博文包含图片

    转: http://blog.csdn.net/christine_ruan/article/details/7491559 http://developer.51cto.com/art/200907 ...

  10. [Luogu] P2817 宋荣子的城堡

    题目描述 saruka有一座大大的城堡!城堡里面有n个房间,每个房间上面都写着一个数字p[i].有一天,saruka邀请他的小伙伴LYL和MagHSK来城堡里玩耍(为什么没有妹子),他们约定,如果某一 ...