117 lines
3.1 KiB
JavaScript
117 lines
3.1 KiB
JavaScript
// Copyright 2011 The Closure Library Authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS-IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
/**
|
|
* @fileoverview Constants for HTTP status codes.
|
|
*/
|
|
|
|
goog.provide('goog.net.HttpStatus');
|
|
|
|
|
|
/**
|
|
* HTTP Status Codes defined in RFC 2616 and RFC 6585.
|
|
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
|
|
* @see http://tools.ietf.org/html/rfc6585
|
|
* @enum {number}
|
|
*/
|
|
goog.net.HttpStatus = {
|
|
// Informational 1xx
|
|
CONTINUE: 100,
|
|
SWITCHING_PROTOCOLS: 101,
|
|
|
|
// Successful 2xx
|
|
OK: 200,
|
|
CREATED: 201,
|
|
ACCEPTED: 202,
|
|
NON_AUTHORITATIVE_INFORMATION: 203,
|
|
NO_CONTENT: 204,
|
|
RESET_CONTENT: 205,
|
|
PARTIAL_CONTENT: 206,
|
|
|
|
// Redirection 3xx
|
|
MULTIPLE_CHOICES: 300,
|
|
MOVED_PERMANENTLY: 301,
|
|
FOUND: 302,
|
|
SEE_OTHER: 303,
|
|
NOT_MODIFIED: 304,
|
|
USE_PROXY: 305,
|
|
TEMPORARY_REDIRECT: 307,
|
|
|
|
// Client Error 4xx
|
|
BAD_REQUEST: 400,
|
|
UNAUTHORIZED: 401,
|
|
PAYMENT_REQUIRED: 402,
|
|
FORBIDDEN: 403,
|
|
NOT_FOUND: 404,
|
|
METHOD_NOT_ALLOWED: 405,
|
|
NOT_ACCEPTABLE: 406,
|
|
PROXY_AUTHENTICATION_REQUIRED: 407,
|
|
REQUEST_TIMEOUT: 408,
|
|
CONFLICT: 409,
|
|
GONE: 410,
|
|
LENGTH_REQUIRED: 411,
|
|
PRECONDITION_FAILED: 412,
|
|
REQUEST_ENTITY_TOO_LARGE: 413,
|
|
REQUEST_URI_TOO_LONG: 414,
|
|
UNSUPPORTED_MEDIA_TYPE: 415,
|
|
REQUEST_RANGE_NOT_SATISFIABLE: 416,
|
|
EXPECTATION_FAILED: 417,
|
|
PRECONDITION_REQUIRED: 428,
|
|
TOO_MANY_REQUESTS: 429,
|
|
REQUEST_HEADER_FIELDS_TOO_LARGE: 431,
|
|
|
|
// Server Error 5xx
|
|
INTERNAL_SERVER_ERROR: 500,
|
|
NOT_IMPLEMENTED: 501,
|
|
BAD_GATEWAY: 502,
|
|
SERVICE_UNAVAILABLE: 503,
|
|
GATEWAY_TIMEOUT: 504,
|
|
HTTP_VERSION_NOT_SUPPORTED: 505,
|
|
NETWORK_AUTHENTICATION_REQUIRED: 511,
|
|
|
|
/*
|
|
* IE returns this code for 204 due to its use of URLMon, which returns this
|
|
* code for 'Operation Aborted'. The status text is 'Unknown', the response
|
|
* headers are ''. Known to occur on IE 6 on XP through IE9 on Win7.
|
|
*/
|
|
QUIRK_IE_NO_CONTENT: 1223
|
|
};
|
|
|
|
|
|
/**
|
|
* Returns whether the given status should be considered successful.
|
|
*
|
|
* Successful codes are OK (200), CREATED (201), ACCEPTED (202),
|
|
* NO CONTENT (204), PARTIAL CONTENT (206), NOT MODIFIED (304),
|
|
* and IE's no content code (1223).
|
|
*
|
|
* @param {number} status The status code to test.
|
|
* @return {boolean} Whether the status code should be considered successful.
|
|
*/
|
|
goog.net.HttpStatus.isSuccess = function(status) {
|
|
switch (status) {
|
|
case goog.net.HttpStatus.OK:
|
|
case goog.net.HttpStatus.CREATED:
|
|
case goog.net.HttpStatus.ACCEPTED:
|
|
case goog.net.HttpStatus.NO_CONTENT:
|
|
case goog.net.HttpStatus.PARTIAL_CONTENT:
|
|
case goog.net.HttpStatus.NOT_MODIFIED:
|
|
case goog.net.HttpStatus.QUIRK_IE_NO_CONTENT:
|
|
return true;
|
|
|
|
default:
|
|
return false;
|
|
}
|
|
};
|