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 }