Mercurial > projects > ldc
comparison tango/tango/net/http/HttpConst.d @ 132:1700239cab2e trunk
[svn r136] MAJOR UNSTABLE UPDATE!!!
Initial commit after moving to Tango instead of Phobos.
Lots of bugfixes...
This build is not suitable for most things.
author | lindquist |
---|---|
date | Fri, 11 Jan 2008 17:57:40 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:5825d48b27d1 | 132:1700239cab2e |
---|---|
1 /******************************************************************************* | |
2 | |
3 copyright: Copyright (c) 2004 Kris Bell. All rights reserved | |
4 | |
5 license: BSD style: $(LICENSE) | |
6 | |
7 version: Initial release: April 2004 | |
8 | |
9 author: Kris | |
10 | |
11 *******************************************************************************/ | |
12 | |
13 module tango.net.http.HttpConst; | |
14 | |
15 /******************************************************************************* | |
16 | |
17 Constants | |
18 | |
19 *******************************************************************************/ | |
20 | |
21 struct HttpConst | |
22 { | |
23 const char[] Eol = "\r\n"; | |
24 } | |
25 | |
26 /******************************************************************************* | |
27 | |
28 Headers are distinct types in their own right. This is because they | |
29 are somewhat optimized via a trailing ':' character. | |
30 | |
31 *******************************************************************************/ | |
32 | |
33 struct HttpHeaderName | |
34 { | |
35 final char[] value; | |
36 } | |
37 | |
38 /******************************************************************************* | |
39 | |
40 Define the traditional set of HTTP header names | |
41 | |
42 *******************************************************************************/ | |
43 | |
44 struct HttpHeader | |
45 { | |
46 // size of both the request & response buffer (per thread) | |
47 const int IOBufferSize = 16 * 1024; | |
48 | |
49 // maximum length for POST parameters (to avoid DOS ...) | |
50 const int MaxPostParamSize = 4 * 1024; | |
51 | |
52 const HttpHeaderName Version = {"HTTP/1.0"}; | |
53 const HttpHeaderName TextHtml = {"text/html"}; | |
54 | |
55 const HttpHeaderName Accept = {"Accept:"}; | |
56 const HttpHeaderName AcceptCharset = {"Accept-Charset:"}; | |
57 const HttpHeaderName AcceptEncoding = {"Accept-Encoding:"}; | |
58 const HttpHeaderName AcceptLanguage = {"Accept-Language:"}; | |
59 const HttpHeaderName AcceptRanges = {"Accept-Ranges:"}; | |
60 const HttpHeaderName Age = {"Age:"}; | |
61 const HttpHeaderName Allow = {"Allow:"}; | |
62 const HttpHeaderName Authorization = {"Authorization:"}; | |
63 const HttpHeaderName CacheControl = {"Cache-Control:"}; | |
64 const HttpHeaderName Connection = {"Connection:"}; | |
65 const HttpHeaderName ContentEncoding = {"Content-Encoding:"}; | |
66 const HttpHeaderName ContentLanguage = {"Content-Language:"}; | |
67 const HttpHeaderName ContentLength = {"Content-Length:"}; | |
68 const HttpHeaderName ContentLocation = {"Content-Location:"}; | |
69 const HttpHeaderName ContentRange = {"Content-Range:"}; | |
70 const HttpHeaderName ContentType = {"Content-Type:"}; | |
71 const HttpHeaderName Cookie = {"Cookie:"}; | |
72 const HttpHeaderName Date = {"Date:"}; | |
73 const HttpHeaderName ETag = {"ETag:"}; | |
74 const HttpHeaderName Expect = {"Expect:"}; | |
75 const HttpHeaderName Expires = {"Expires:"}; | |
76 const HttpHeaderName From = {"From:"}; | |
77 const HttpHeaderName Host = {"Host:"}; | |
78 const HttpHeaderName Identity = {"Identity:"}; | |
79 const HttpHeaderName IfMatch = {"If-Match:"}; | |
80 const HttpHeaderName IfModifiedSince = {"If-Modified-Since:"}; | |
81 const HttpHeaderName IfNoneMatch = {"If-None-Match:"}; | |
82 const HttpHeaderName IfRange = {"If-Range:"}; | |
83 const HttpHeaderName IfUnmodifiedSince = {"If-Unmodified-Since:"}; | |
84 const HttpHeaderName LastModified = {"Last-Modified:"}; | |
85 const HttpHeaderName Location = {"Location:"}; | |
86 const HttpHeaderName MaxForwards = {"Max-Forwards:"}; | |
87 const HttpHeaderName MimeVersion = {"MIME-Version:"}; | |
88 const HttpHeaderName Pragma = {"Pragma:"}; | |
89 const HttpHeaderName ProxyAuthenticate = {"Proxy-Authenticate:"}; | |
90 const HttpHeaderName ProxyConnection = {"Proxy-Connection:"}; | |
91 const HttpHeaderName Range = {"Range:"}; | |
92 const HttpHeaderName Referrer = {"Referer:"}; | |
93 const HttpHeaderName RetryAfter = {"Retry-After:"}; | |
94 const HttpHeaderName Server = {"Server:"}; | |
95 const HttpHeaderName ServletEngine = {"Servlet-Engine:"}; | |
96 const HttpHeaderName SetCookie = {"Set-Cookie:"}; | |
97 const HttpHeaderName SetCookie2 = {"Set-Cookie2:"}; | |
98 const HttpHeaderName TE = {"TE:"}; | |
99 const HttpHeaderName Trailer = {"Trailer:"}; | |
100 const HttpHeaderName TransferEncoding = {"Transfer-Encoding:"}; | |
101 const HttpHeaderName Upgrade = {"Upgrade:"}; | |
102 const HttpHeaderName UserAgent = {"User-Agent:"}; | |
103 const HttpHeaderName Vary = {"Vary:"}; | |
104 const HttpHeaderName Warning = {"Warning:"}; | |
105 const HttpHeaderName WwwAuthenticate = {"WWW-Authenticate:"}; | |
106 } | |
107 | |
108 | |
109 /******************************************************************************* | |
110 | |
111 Declare the traditional set of HTTP response codes | |
112 | |
113 *******************************************************************************/ | |
114 | |
115 enum HttpResponseCode | |
116 { | |
117 Continue = 100, | |
118 SwitchingProtocols = 101, | |
119 OK = 200, | |
120 Created = 201, | |
121 Accepted = 202, | |
122 NonAuthoritativeInformation = 203, | |
123 NoContent = 204, | |
124 ResetContent = 205, | |
125 PartialContent = 206, | |
126 MultipleChoices = 300, | |
127 MovedPermanently = 301, | |
128 MovedTemporarily = 302, | |
129 SeeOther = 303, | |
130 NotModified = 304, | |
131 UseProxy = 305, | |
132 TemporaryRedirect = 307, | |
133 BadRequest = 400, | |
134 Unauthorized = 401, | |
135 PaymentRequired = 402, | |
136 Forbidden = 403, | |
137 NotFound = 404, | |
138 MethodNotAllowed = 405, | |
139 NotAcceptable = 406, | |
140 ProxyAuthenticationRequired = 407, | |
141 RequestTimeout = 408, | |
142 Conflict = 409, | |
143 Gone = 410, | |
144 LengthRequired = 411, | |
145 PreconditionFailed = 412, | |
146 RequestEntityTooLarge = 413, | |
147 RequestURITooLarge = 414, | |
148 UnsupportedMediaType = 415, | |
149 RequestedRangeNotSatisfiable = 416, | |
150 ExpectationFailed = 417, | |
151 InternalServerError = 500, | |
152 NotImplemented = 501, | |
153 BadGateway = 502, | |
154 ServiceUnavailable = 503, | |
155 GatewayTimeout = 504, | |
156 VersionNotSupported = 505, | |
157 }; | |
158 | |
159 /******************************************************************************* | |
160 | |
161 Status is a compound type, with a name and a code. | |
162 | |
163 *******************************************************************************/ | |
164 | |
165 struct HttpStatus | |
166 { | |
167 final int code; | |
168 final char[] name; | |
169 } | |
170 | |
171 /******************************************************************************* | |
172 | |
173 Declare the traditional set of HTTP responses | |
174 | |
175 *******************************************************************************/ | |
176 | |
177 struct HttpResponses | |
178 { | |
179 static HttpStatus Continue = {HttpResponseCode.Continue, "Continue"}; | |
180 static HttpStatus SwitchingProtocols = {HttpResponseCode.SwitchingProtocols, "SwitchingProtocols"}; | |
181 static HttpStatus OK = {HttpResponseCode.OK, "OK"}; | |
182 static HttpStatus Created = {HttpResponseCode.Created, "Created"}; | |
183 static HttpStatus Accepted = {HttpResponseCode.Accepted, "Accepted"}; | |
184 static HttpStatus NonAuthoritativeInformation = {HttpResponseCode.NonAuthoritativeInformation, "NonAuthoritativeInformation"}; | |
185 static HttpStatus NoContent = {HttpResponseCode.NoContent, "NoContent"}; | |
186 static HttpStatus ResetContent = {HttpResponseCode.ResetContent, "ResetContent"}; | |
187 static HttpStatus PartialContent = {HttpResponseCode.PartialContent, "PartialContent"}; | |
188 static HttpStatus MultipleChoices = {HttpResponseCode.MultipleChoices, "MultipleChoices"}; | |
189 static HttpStatus MovedPermanently = {HttpResponseCode.MovedPermanently, "MovedPermanently"}; | |
190 static HttpStatus MovedTemporarily = {HttpResponseCode.MovedTemporarily, "MovedTemporarily"}; | |
191 static HttpStatus SeeOther = {HttpResponseCode.SeeOther, "SeeOther"}; | |
192 static HttpStatus NotModified = {HttpResponseCode.NotModified, "NotModified"}; | |
193 static HttpStatus UseProxy = {HttpResponseCode.UseProxy, "UseProxy"}; | |
194 static HttpStatus BadRequest = {HttpResponseCode.BadRequest, "BadRequest"}; | |
195 static HttpStatus Unauthorized = {HttpResponseCode.Unauthorized, "Unauthorized"}; | |
196 static HttpStatus PaymentRequired = {HttpResponseCode.PaymentRequired, "PaymentRequired"}; | |
197 static HttpStatus Forbidden = {HttpResponseCode.Forbidden, "Forbidden"}; | |
198 static HttpStatus NotFound = {HttpResponseCode.NotFound, "NotFound"}; | |
199 static HttpStatus MethodNotAllowed = {HttpResponseCode.MethodNotAllowed, "MethodNotAllowed"}; | |
200 static HttpStatus NotAcceptable = {HttpResponseCode.NotAcceptable, "NotAcceptable"}; | |
201 static HttpStatus ProxyAuthenticationRequired = {HttpResponseCode.ProxyAuthenticationRequired, "ProxyAuthenticationRequired"}; | |
202 static HttpStatus RequestTimeout = {HttpResponseCode.RequestTimeout, "RequestTimeout"}; | |
203 static HttpStatus Conflict = {HttpResponseCode.Conflict, "Conflict"}; | |
204 static HttpStatus Gone = {HttpResponseCode.Gone, "Gone"}; | |
205 static HttpStatus LengthRequired = {HttpResponseCode.LengthRequired, "LengthRequired"}; | |
206 static HttpStatus PreconditionFailed = {HttpResponseCode.PreconditionFailed, "PreconditionFailed"}; | |
207 static HttpStatus RequestEntityTooLarge = {HttpResponseCode.RequestEntityTooLarge, "RequestEntityTooLarge"}; | |
208 static HttpStatus RequestURITooLarge = {HttpResponseCode.RequestURITooLarge, "RequestURITooLarge"}; | |
209 static HttpStatus UnsupportedMediaType = {HttpResponseCode.UnsupportedMediaType, "UnsupportedMediaType"}; | |
210 static HttpStatus RequestedRangeNotSatisfiable = {HttpResponseCode.RequestedRangeNotSatisfiable, "RequestedRangeNotSatisfiable"}; | |
211 static HttpStatus ExpectationFailed = {HttpResponseCode.ExpectationFailed, "ExpectationFailed"}; | |
212 static HttpStatus InternalServerError = {HttpResponseCode.InternalServerError, "InternalServerError"}; | |
213 static HttpStatus NotImplemented = {HttpResponseCode.NotImplemented, "NotImplemented"}; | |
214 static HttpStatus BadGateway = {HttpResponseCode.BadGateway, "BadGateway"}; | |
215 static HttpStatus ServiceUnavailable = {HttpResponseCode.ServiceUnavailable, "ServiceUnavailable"}; | |
216 static HttpStatus GatewayTimeout = {HttpResponseCode.GatewayTimeout, "GatewayTimeout"}; | |
217 static HttpStatus VersionNotSupported = {HttpResponseCode.VersionNotSupported, "VersionNotSupported"}; | |
218 } |