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

Reply via email to