// 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; } };