1 module archttp.HttpHeader;
2 
3 import geario.logging;
4 
5 import std.algorithm;
6 import std.conv;
7 import std.string;
8 
9 /**
10  * Http header name
11  */
12 struct HttpHeader
13 {
14     enum string NULL = "Null";
15 
16     /**
17      * General Fields.
18      */
19     enum string CONNECTION = "Connection";
20     enum string CACHE_CONTROL = "Cache-Control";
21     enum string DATE = "Date";
22     enum string PRAGMA = "Pragma";
23     enum string PROXY_CONNECTION = "Proxy-Connection";
24     enum string TRAILER = "Trailer";
25     enum string TRANSFER_ENCODING = "Transfer-Encoding";
26     enum string UPGRADE = "Upgrade";
27     enum string VIA = "Via";
28     enum string WARNING = "Warning";
29     enum string NEGOTIATE = "Negotiate";
30 
31     /**
32      * Entity Fields.
33      */
34     enum string ALLOW = "Allow";
35     enum string CONTENT_DISPOSITION = "Content-Disposition";
36     enum string CONTENT_ENCODING = "Content-Encoding";
37     enum string CONTENT_LANGUAGE = "Content-Language";
38     enum string CONTENT_LENGTH = "Content-Length";
39     enum string CONTENT_LOCATION = "Content-Location";
40     enum string CONTENT_MD5 = "Content-MD5";
41     enum string CONTENT_RANGE = "Content-Range";
42     enum string CONTENT_TYPE = "Content-Type";
43     enum string EXPIRES = "Expires";
44     enum string LAST_MODIFIED = "Last-Modified";
45 
46     /**
47      * Request Fields.
48      */
49     enum string ACCEPT = "Accept";
50     enum string ACCEPT_CHARSET = "Accept-Charset";
51     enum string ACCEPT_ENCODING = "Accept-Encoding";
52     enum string ACCEPT_LANGUAGE = "Accept-Language";
53     enum string AUTHORIZATION = "Authorization";
54     enum string EXPECT = "Expect";
55     enum string FORWARDED = "Forwarded";
56     enum string FROM = "From";
57     enum string HOST = "Host";
58     enum string IF_MATCH = "If-Match";
59     enum string IF_MODIFIED_SINCE = "If-Modified-Since";
60     enum string IF_NONE_MATCH = "If-None-Match";
61     enum string IF_RANGE = "If-Range";
62     enum string IF_UNMODIFIED_SINCE = "If-Unmodified-Since";
63     enum string KEEP_ALIVE = "Keep-Alive";
64     enum string MAX_FORWARDS = "Max-Forwards";
65     enum string PROXY_AUTHORIZATION = "Proxy-Authorization";
66     enum string RANGE = "Range";
67     enum string REQUEST_RANGE = "Request-Range";
68     enum string REFERER = "Referer";
69     enum string TE = "TE";
70     enum string USER_AGENT = "User-Agent";
71     enum string X_FORWARDED_FOR = "X-Forwarded-For";
72     enum string X_FORWARDED_PROTO = "X-Forwarded-Proto";
73     enum string X_FORWARDED_SERVER = "X-Forwarded-Server";
74     enum string X_FORWARDED_HOST = "X-Forwarded-Host";
75 
76     /**
77      * Response Fields.
78      */
79     enum string ACCEPT_RANGES = "Accept-Ranges";
80     enum string AGE = "Age";
81     enum string ETAG = "ETag";
82     enum string LOCATION = "Location";
83     enum string PROXY_AUTHENTICATE = "Proxy-Authenticate";
84     enum string RETRY_AFTER = "Retry-After";
85     enum string SERVER = "Server";
86     enum string SERVLET_ENGINE = "Servlet-Engine";
87     enum string VARY = "Vary";
88     enum string WWW_AUTHENTICATE = "WWW-Authenticate";
89 
90     /**
91      * WebSocket Fields.
92      */
93     enum string ORIGIN = "Origin";
94     enum string SEC_WEBSOCKET_KEY = "Sec-WebSocket-Key";
95     enum string SEC_WEBSOCKET_VERSION = "Sec-WebSocket-Version";
96     enum string SEC_WEBSOCKET_EXTENSIONS = "Sec-WebSocket-Extensions";
97     enum string SEC_WEBSOCKET_SUBPROTOCOL = "Sec-WebSocket-Protocol";
98     enum string SEC_WEBSOCKET_ACCEPT = "Sec-WebSocket-Accept";
99 
100     /**
101      * Other Fields.
102      */
103     enum string COOKIE = "Cookie";
104     enum string SET_COOKIE = "Set-Cookie";
105     enum string SET_COOKIE2 = "Set-Cookie2";
106     enum string MIME_VERSION = "MIME-Version";
107     enum string IDENTITY = "identity";
108 
109     enum string X_POWERED_BY = "X-Powered-By";
110     enum string HTTP2_SETTINGS = "HTTP2-Settings";
111 
112     enum string STRICT_TRANSPORT_SECURITY = "Strict-Transport-Security";
113 
114     /**
115      * HTTP2 Fields.
116      */
117     enum string C_METHOD = ":method";
118     enum string C_SCHEME = ":scheme";
119     enum string C_AUTHORITY = ":authority";
120     enum string C_PATH = ":path";
121     enum string C_STATUS = ":status";
122 
123     enum string UNKNOWN = "::UNKNOWN::";
124 }