HTTP 状态码

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| 请求成功。|
|201|Created| 该请求是完整的,并创建一个新的资源。|
|202|Accepted |该请求被接受处理,但是该处理是不完整的。|
|203|Non-authoritative Information ||
|204|No Content ||
|205|Reset Content ||
|206|Partial Content| |
|300 |Multiple Choices|链接列表。用户可以选择一个链接,进入到该位置。最多五个地址|
|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|"Content-Length" 未定义。服务器无法处理客户端发送的不带 Content-Length 的请求信息。|
|412|Precondition Failed |请求中给出的先决条件被服务器评估为 false。|
|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| 服务器不支持“HTTP协议”版本。|
设置 HTTP 状态码的方法:
下面是在 servlet 程序中可以用于设置 HTTP 状态码的方法。通过 HttpServletResponse 对象这些方法是可用的。

序号 方法 描述
1 public void setStatus ( int statusCode ) 该方法设置一个任意的状态码。setStatus 方法接受一个 int(状态码)作为参数。如果您的反应包含了一个特殊的状态码和文档,请确保在使用 PrintWriter 实际返回任何内容之前调用 setStatus。
2 public void sendRedirect(String url) 该方法生成一个 302 响应,连同一个带有新文档 URL 的 Location 头。
3 public void sendError(int code, String message) 该方法发送一个状态码(通常为 404),连同一个在 HTML 文档内部自动格式化并发送到客户端的短消息。

向客户端输出错误代码如下:

package servletStudent;

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;

public class authon extends HttpServlet {

    
    /**
     * 
     */
//  private static final long serialVersionUID = 1L;

    public authon() {
        super();
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("====");
//      response.sendError(407, "sorry you cloud authion");
        response.sendError(407, "Need authentication!!!" );
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doGet(request, response);

    }

}

运行结果如图:

运行结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容

  • HTTP状态码(HTTP Status Code)表示http服务器对与请求HTTP响应状态的3位数字代码。它由 ...
    BeeNoisy阅读 1,787评论 0 8
  • HTTP状态码的分类 HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的...
    薄凉_简书阅读 567评论 0 1
  • 摘自 wiki HTTP状态码 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,...
    SincereDu阅读 253评论 0 1
  • 转载自:HTTP状态码——AndroidObject HTTP状态码(HTTP Status Code)是用以表网...
    TTTqiu阅读 217评论 0 0
  • 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信...
    轮回小飞飞阅读 236评论 0 0