2009-04-17读书记录:《Servlet与JSP核心编程》第六章——HTTP状态代码

Http状态代码

来自浏览器或其它程序的请求,由一个http命令(Get或Post),至少一个请求报头(Host必须),一个空行以及一些查询数据。典型的请求格式如下 :

GET  /Servlet/LongServlet HTTP/1.1
Host:...
Header2:...
……
Header n....
(此行是空行)

 

其中Header2……Header n 是报头。而Web服务器对于请求的响应,一般由一个状态行、一些响应报头、一个空行和一些相应的文档构成。典型的响应格式如下:

HTTP/1.1 200 OK
Content-Type:text/html
Header2:...
……
Header n...
(仍然是一个空行)
<!DOCTYPE.......
<HTML>
<HEAD>......</HEAD>
<BODY>......</BODY>
<HTML>

状态行(格式中的HTTP/1.1 200 OK)是由一个状态代码以(例中200)及一段对应状态代码的的简短消息(例中OK)组成。一般情况下除了指定后面文档MIME类型Content-Type报头之外,其它报头都是可选的。

状态代码的设定

设置任意的状态代码,需要使用HttpServletRequest的setStatus方法。如果响应的状态代码比较特殊,并且伴有相关的文档内容,那么一定要在用PrintWriter实际返回任何内容之前调用setStatus方法

方法的使用

setStatus方法以一个整数(状态代码,int类型)为参数,但一般使用HttpServletResponse中定义的常量。格式为:标准Http1.1协议中的消息名称全部大写添加SC前缀(Status Code),空格变成下划线,例:SC_NOT_FOUND(这个是404状态代码):response.setStatus(response.SC_NO_FOUND);

HTTP1.1中可用的特定状态代码:

  • 100~199:信息性的,标示客户应该采取的其他动作
  • 200~299:表示请求成功
  • 300~399:用于已经移走的文件,常常包括Location报头,指出新的地址
  • 400~499:表明由客户端引发的错误
  • 500~599:表示由服务器引发的错误

至于每个代码所供求的确切含义就等使用到的查询手册,这里就不加说明了。

例:页面跳转

根据报头判断客户端浏览器类型,如果是Firefox则跳转到mozilla主页,其它则去微软主页:

 

最常用的三个状态代码:200(OK),302(FOUND),404(NOT FOUND)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值