七、HTTP应答状态

2019-05-27 22:26:57王旭

411  Length Required  服务器不能处理请求,除非客户发送一个Content-Length头。(HTTP 1.1新)  
412  Precondition Failed  请求头中指定的一些前提条件失败(HTTP 1.1新)。  
413  Request Entity Too Large  目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头(HTTP 1.1新)。  
414  Request URI Too Long  URI太长(HTTP 1.1新)。  
416  Requested Range Not Satisfiable  服务器不能满足客户在请求中指定的Range头。(HTTP 1.1新)  
500  Internal Server Error  服务器遇到了意料不到的情况,不能完成客户的请求。  
501  Not Implemented  服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。  
502  Bad Gateway  服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。  
503  Service Unavailable  服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头。  
504  Gateway Timeout  由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。(HTTP 1.1新)  
505  HTTP Version Not Supported  服务器不支持请求中所指明的HTTP版本。(HTTP 1.1新)  


   7.4 实例:访问多个搜索引擎

   下面这个例子用到了除200之外的另外两个常见状态代码:302和404。302通过sendRedirect方法设置,404通过sendError方法设置。

   在这个例子中,首先出现的HTML表单用来选择搜索引擎、搜索字符串、每页显示的搜索结果数量。表单提交后,Servlet提取这三个变量,按照所选择的搜索引擎的要求构造出包含这些变量的URL,然后把用户重定向到这个URL。如果用户不能正确地选择搜索引擎,或者利用其他表单发送了一个不认识的搜索引擎名字,则返回一个提示搜索引擎找不到的404页面。

   SearchEngines.java

   注意:这个Servlet要用到后面给出的SearchSpec类,SearchSpec的功能是构造适合不同搜索引擎的URL。
package hall;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;

public class SearchEngines extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)