Hi, Samer The patch is good, I will commit it later.
Reviewed-by: Fu Siyuan <siyuan...@intel.com> -----Original Message----- From: Samer El-Haj-Mahmoud [mailto:samer.el-haj-mahm...@hpe.com] Sent: Thursday, December 17, 2015 5:13 AM To: edk2-devel@lists.01.org Cc: Fu, Siyuan <siyuan...@intel.com>; Tian, Feng <feng.t...@intel.com>; Samer El-Haj-Mahmoud <samer.el-haj-mahm...@hpe.com>; Samer El-Haj-Mahmoud <el...@hpe.com> Subject: [PATCH v3] MdeModulePkg: Add HTTP 1.1 industry standard definitions Add common HTTP 1.1 industry standard definitions for use in HTTP clients/applications. List includes: HTTP methods, request/response headers, and encodings. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Samer El-Haj-Mahmoud <el...@hpe.com> --- MdePkg/Include/IndustryStandard/Http11.h | 208 +++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 MdePkg/Include/IndustryStandard/Http11.h diff --git a/MdePkg/Include/IndustryStandard/Http11.h b/MdePkg/Include/IndustryStandard/Http11.h new file mode 100644 index 0000000..ddf6519 --- /dev/null +++ b/MdePkg/Include/IndustryStandard/Http11.h @@ -0,0 +1,208 @@ +/** @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 Hewlett Packard Enterprise Development LP<BR> + This program and the accompanying materials are licensed and made + available under the terms and conditions of the BSD License which + accompanies this distribution. The full text of the license may be + found at http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +**/ + +#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" + +#define HTTP_METHOD_MAXIMUM_LEN sizeof ("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" + + +/// +/// 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" + + +/// +/// 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" + + + +/// +/// 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" + + + + +#pragma pack() +#endif -- 2.6.3.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel