Revision: 19435
          http://sourceforge.net/p/edk2/code/19435
Author:   sfu5
Date:     2015-12-22 01:42:26 +0000 (Tue, 22 Dec 2015)
Log Message:
-----------
MdePkg: 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 <[email protected]>
Reviewed-by: Fu Siyuan <[email protected]>

Added Paths:
-----------
    trunk/edk2/MdePkg/Include/IndustryStandard/Http11.h

Added: trunk/edk2/MdePkg/Include/IndustryStandard/Http11.h
===================================================================
--- trunk/edk2/MdePkg/Include/IndustryStandard/Http11.h                         
(rev 0)
+++ trunk/edk2/MdePkg/Include/IndustryStandard/Http11.h 2015-12-22 01:42:26 UTC 
(rev 19435)
@@ -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


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to