/** @file | |
Hypertext Transfer Protocol -- HTTP/1.1 Standard definitions, from RFC 2616 | |
This file contains common HTTP 1.1 definitions from RFC 2616 | |
(C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR> | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#ifndef __HTTP_11_H__ | |
#define __HTTP_11_H__ | |
#pragma pack(1) | |
/// | |
/// HTTP Version (currently HTTP 1.1) | |
/// | |
/// The version of an HTTP message is indicated by an HTTP-Version field | |
/// in the first line of the message. | |
/// | |
#define HTTP_VERSION "HTTP/1.1" | |
/// | |
/// HTTP Request Method definitions | |
/// | |
/// The Method token indicates the method to be performed on the | |
/// resource identified by the Request-URI. The method is case-sensitive. | |
/// | |
#define HTTP_METHOD_OPTIONS "OPTIONS" | |
#define HTTP_METHOD_GET "GET" | |
#define HTTP_METHOD_HEAD "HEAD" | |
#define HTTP_METHOD_POST "POST" | |
#define HTTP_METHOD_PUT "PUT" | |
#define HTTP_METHOD_DELETE "DELETE" | |
#define HTTP_METHOD_TRACE "TRACE" | |
#define HTTP_METHOD_CONNECT "CONNECT" | |
#define HTTP_METHOD_PATCH "PATCH" | |
/// | |
/// Connect method has maximum length according to EFI_HTTP_METHOD defined in | |
/// UEFI2.5 spec so use this. | |
/// | |
#define HTTP_METHOD_MAXIMUM_LEN sizeof (HTTP_METHOD_CONNECT) | |
/// | |
/// Accept Request Header | |
/// The Accept request-header field can be used to specify certain media types which are | |
/// acceptable for the response. Accept headers can be used to indicate that the request | |
/// is specifically limited to a small set of desired types, as in the case of a request | |
/// for an in-line image. | |
/// | |
#define HTTP_HEADER_ACCEPT "Accept" | |
/// | |
/// Accept-Charset Request Header | |
/// The Accept-Charset request-header field can be used to indicate what character sets | |
/// are acceptable for the response. This field allows clients capable of understanding | |
/// more comprehensive or special-purpose character sets to signal that capability to a | |
/// server which is capable of representing documents in those character sets. | |
/// | |
#define HTTP_HEADER_ACCEPT_CHARSET "Accept-Charset" | |
/// | |
/// Accept-Language Request Header | |
/// The Accept-Language request-header field is similar to Accept, | |
/// but restricts the set of natural languages that are preferred | |
/// as a response to the request. | |
/// | |
#define HTTP_HEADER_ACCEPT_LANGUAGE "Accept-Language" | |
/// | |
/// Accept-Ranges Request Header | |
/// The Accept-Ranges response-header field allows the server to | |
/// indicate its acceptance of range requests for a resource: | |
/// | |
#define HTTP_HEADER_ACCEPT_RANGES "Accept-Ranges" | |
/// | |
/// Accept-Encoding Request Header | |
/// The Accept-Encoding request-header field is similar to Accept, | |
/// but restricts the content-codings that are acceptable in the response. | |
/// | |
#define HTTP_HEADER_ACCEPT_ENCODING "Accept-Encoding" | |
/// | |
/// Content-Encoding Header | |
/// The Content-Encoding entity-header field is used as a modifier to the media-type. | |
/// When present, its value indicates what additional content codings have been applied | |
/// to the entity-body, and thus what decoding mechanisms must be applied in order to | |
/// obtain the media-type referenced by the Content-Type header field. Content-Encoding | |
/// is primarily used to allow a document to be compressed without losing the identity | |
/// of its underlying media type. | |
/// | |
#define HTTP_HEADER_CONTENT_ENCODING "Content-Encoding" | |
/// | |
/// HTTP Content-Encoding Compression types | |
/// | |
#define HTTP_CONTENT_ENCODING_IDENTITY "identity" /// No transformation is used. This is the default value for content coding. | |
#define HTTP_CONTENT_ENCODING_GZIP "gzip" /// Content-Encoding: GNU zip format (described in RFC 1952). | |
#define HTTP_CONTENT_ENCODING_COMPRESS "compress" /// encoding format produced by the common UNIX file compression program "compress". | |
#define HTTP_CONTENT_ENCODING_DEFLATE "deflate" /// The "zlib" format defined in RFC 1950 in combination with the "deflate" | |
/// compression mechanism described in RFC 1951. | |
/// | |
/// Content-Type Header | |
/// The Content-Type entity-header field indicates the media type of the entity-body sent to | |
/// the recipient or, in the case of the HEAD method, the media type that would have been sent | |
/// had the request been a GET. | |
/// | |
#define HTTP_HEADER_CONTENT_TYPE "Content-Type" | |
// | |
// Common Media Types defined in http://www.iana.org/assignments/media-types/media-types.xhtml | |
// | |
#define HTTP_CONTENT_TYPE_APP_JSON "application/json" | |
#define HTTP_CONTENT_TYPE_APP_OCTET_STREAM "application/octet-stream" | |
#define HTTP_CONTENT_TYPE_TEXT_HTML "text/html" | |
#define HTTP_CONTENT_TYPE_TEXT_PLAIN "text/plain" | |
#define HTTP_CONTENT_TYPE_TEXT_CSS "text/css" | |
#define HTTP_CONTENT_TYPE_TEXT_XML "text/xml" | |
#define HTTP_CONTENT_TYPE_IMAGE_GIF "image/gif" | |
#define HTTP_CONTENT_TYPE_IMAGE_JPEG "image/jpeg" | |
#define HTTP_CONTENT_TYPE_IMAGE_PNG "image/png" | |
#define HTTP_CONTENT_TYPE_IMAGE_SVG_XML "image/svg+xml" | |
/// | |
/// Content-Length Header | |
/// The Content-Length entity-header field indicates the size of the entity-body, | |
/// in decimal number of OCTETs, sent to the recipient or, in the case of the HEAD | |
/// method, the size of the entity-body that would have been sent had the request been a GET. | |
/// | |
#define HTTP_HEADER_CONTENT_LENGTH "Content-Length" | |
/// | |
/// Transfer-Encoding Header | |
/// The Transfer-Encoding general-header field indicates what (if any) type of transformation | |
/// has been applied to the message body in order to safely transfer it between the sender | |
/// and the recipient. This differs from the content-coding in that the transfer-coding | |
/// is a property of the message, not of the entity. | |
/// | |
#define HTTP_HEADER_TRANSFER_ENCODING "Transfer-Encoding" | |
#define HTTP_HEADER_TRANSFER_ENCODING_CHUNKED "chunked" | |
#define CHUNKED_TRANSFER_CODING_CR '\r' | |
#define CHUNKED_TRANSFER_CODING_LF '\n' | |
#define CHUNKED_TRANSFER_CODING_LAST_CHUNK '0' | |
#define CHUNKED_TRANSFER_CODING_EXTENSION_SEPARATOR ';' | |
/// | |
/// User Agent Request Header | |
/// | |
/// The User-Agent request-header field contains information about the user agent originating | |
/// the request. This is for statistical purposes, the tracing of protocol violations, and | |
/// automated recognition of user agents for the sake of tailoring responses to avoid | |
/// particular user agent limitations. User agents SHOULD include this field with requests. | |
/// The field can contain multiple product tokens and comments identifying the agent and any | |
/// subproducts which form a significant part of the user agent. | |
/// By convention, the product tokens are listed in order of their significance for | |
/// identifying the application. | |
/// | |
#define HTTP_HEADER_USER_AGENT "User-Agent" | |
/// | |
/// Host Request Header | |
/// | |
/// The Host request-header field specifies the Internet host and port number of the resource | |
/// being requested, as obtained from the original URI given by the user or referring resource | |
/// | |
#define HTTP_HEADER_HOST "Host" | |
/// | |
/// Location Response Header | |
/// | |
/// The Location response-header field is used to redirect the recipient to a location other than | |
/// the Request-URI for completion of the request or identification of a new resource. | |
/// For 201 (Created) responses, the Location is that of the new resource which was created by | |
/// the request. For 3xx responses, the location SHOULD indicate the server's preferred URI for | |
/// automatic redirection to the resource. The field value consists of a single absolute URI. | |
/// | |
#define HTTP_HEADER_LOCATION "Location" | |
/// | |
/// The If-Match request-header field is used with a method to make it conditional. | |
/// A client that has one or more entities previously obtained from the resource | |
/// can verify that one of those entities is current by including a list of their | |
/// associated entity tags in the If-Match header field. | |
/// The purpose of this feature is to allow efficient updates of cached information | |
/// with a minimum amount of transaction overhead. It is also used, on updating requests, | |
/// to prevent inadvertent modification of the wrong version of a resource. | |
/// As a special case, the value "*" matches any current entity of the resource. | |
/// | |
#define HTTP_HEADER_IF_MATCH "If-Match" | |
/// | |
/// The If-None-Match request-header field is used with a method to make it conditional. | |
/// A client that has one or more entities previously obtained from the resource can verify | |
/// that none of those entities is current by including a list of their associated entity | |
/// tags in the If-None-Match header field. The purpose of this feature is to allow efficient | |
/// updates of cached information with a minimum amount of transaction overhead. It is also used | |
/// to prevent a method (e.g. PUT) from inadvertently modifying an existing resource when the | |
/// client believes that the resource does not exist. | |
/// | |
#define HTTP_HEADER_IF_NONE_MATCH "If-None-Match" | |
/// | |
/// The WWW-Authenticate Response Header | |
/// If a server receives a request for an access-protected object, and an | |
/// acceptable Authorization header is not sent, the server responds with | |
/// a "401 Unauthorized" status code, and a WWW-Authenticate header. | |
/// | |
#define HTTP_HEADER_WWW_AUTHENTICATE "WWW-Authenticate" | |
/// | |
/// Authorization Request Header | |
/// The Authorization field value consists of credentials | |
/// containing the authentication information of the user agent for | |
/// the realm of the resource being requested. | |
/// | |
#define HTTP_HEADER_AUTHORIZATION "Authorization" | |
/// | |
/// ETAG Response Header | |
/// The ETag response-header field provides the current value of the entity tag | |
/// for the requested variant. | |
/// | |
#define HTTP_HEADER_ETAG "ETag" | |
/// | |
/// Custom header field checked by the iLO web server to | |
/// specify a client session key. | |
/// Example: X-Auth-Token: 24de6b1f8fa147ad59f6452def628798 | |
/// | |
#define HTTP_HEADER_X_AUTH_TOKEN "X-Auth-Token" | |
/// | |
/// Expect Header | |
/// The "Expect" header field in a request indicates a certain set of | |
/// behaviors (expectations) that need to be supported by the server in | |
/// order to properly handle this request. The only such expectation | |
/// defined by this specification is 100-continue. | |
/// | |
#define HTTP_HEADER_EXPECT "Expect" | |
/// | |
/// Expect Header Value | |
/// | |
#define HTTP_EXPECT_100_CONTINUE "100-continue" | |
/// | |
/// Content-Range Response Header | |
/// The Content-Range response HTTP header indicates where in a | |
/// full body message a partial message belongs. | |
/// | |
#define HTTP_HEADER_CONTENT_RANGE "Content-Range" | |
/// | |
/// Last-Modified Response Header | |
/// The Last-Modified response HTTP header contains a date and time when | |
/// the origin server believes the resource was last modified. It is used | |
/// as a validator to determine if the resource is the same as the | |
/// previously stored one. Less accurate than an ETag header, | |
/// it is a fallback mechanism. Conditional requests containing | |
/// If-Modified-Since or If-Unmodified-Since headers make use of this field. | |
/// | |
#define HTTP_HEADER_LAST_MODIFIED "Last-Modified" | |
/// | |
/// If Unmodified Since Request Header | |
/// Makes the request for the resource conditional: the server will send | |
/// the requested resource or accept it in the case of a POST or another | |
/// non-safe method only if the resource has not been modified after the | |
/// date specified by this HTTP header. If the resource has been modified | |
/// after the specified date, the response will be a 412 Precondition Failed error. | |
/// | |
#define HTTP_HEADER_IF_UNMODIFIED_SINCE "If-Unmodified-Since" | |
#pragma pack() | |
#endif |