Mercurial > projects > ldc
view 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 |
line wrap: on
line source
/******************************************************************************* copyright: Copyright (c) 2004 Kris Bell. All rights reserved license: BSD style: $(LICENSE) version: Initial release: April 2004 author: Kris *******************************************************************************/ module tango.net.http.HttpConst; /******************************************************************************* Constants *******************************************************************************/ struct HttpConst { const char[] Eol = "\r\n"; } /******************************************************************************* Headers are distinct types in their own right. This is because they are somewhat optimized via a trailing ':' character. *******************************************************************************/ struct HttpHeaderName { final char[] value; } /******************************************************************************* Define the traditional set of HTTP header names *******************************************************************************/ struct HttpHeader { // size of both the request & response buffer (per thread) const int IOBufferSize = 16 * 1024; // maximum length for POST parameters (to avoid DOS ...) const int MaxPostParamSize = 4 * 1024; const HttpHeaderName Version = {"HTTP/1.0"}; const HttpHeaderName TextHtml = {"text/html"}; const HttpHeaderName Accept = {"Accept:"}; const HttpHeaderName AcceptCharset = {"Accept-Charset:"}; const HttpHeaderName AcceptEncoding = {"Accept-Encoding:"}; const HttpHeaderName AcceptLanguage = {"Accept-Language:"}; const HttpHeaderName AcceptRanges = {"Accept-Ranges:"}; const HttpHeaderName Age = {"Age:"}; const HttpHeaderName Allow = {"Allow:"}; const HttpHeaderName Authorization = {"Authorization:"}; const HttpHeaderName CacheControl = {"Cache-Control:"}; const HttpHeaderName Connection = {"Connection:"}; const HttpHeaderName ContentEncoding = {"Content-Encoding:"}; const HttpHeaderName ContentLanguage = {"Content-Language:"}; const HttpHeaderName ContentLength = {"Content-Length:"}; const HttpHeaderName ContentLocation = {"Content-Location:"}; const HttpHeaderName ContentRange = {"Content-Range:"}; const HttpHeaderName ContentType = {"Content-Type:"}; const HttpHeaderName Cookie = {"Cookie:"}; const HttpHeaderName Date = {"Date:"}; const HttpHeaderName ETag = {"ETag:"}; const HttpHeaderName Expect = {"Expect:"}; const HttpHeaderName Expires = {"Expires:"}; const HttpHeaderName From = {"From:"}; const HttpHeaderName Host = {"Host:"}; const HttpHeaderName Identity = {"Identity:"}; const HttpHeaderName IfMatch = {"If-Match:"}; const HttpHeaderName IfModifiedSince = {"If-Modified-Since:"}; const HttpHeaderName IfNoneMatch = {"If-None-Match:"}; const HttpHeaderName IfRange = {"If-Range:"}; const HttpHeaderName IfUnmodifiedSince = {"If-Unmodified-Since:"}; const HttpHeaderName LastModified = {"Last-Modified:"}; const HttpHeaderName Location = {"Location:"}; const HttpHeaderName MaxForwards = {"Max-Forwards:"}; const HttpHeaderName MimeVersion = {"MIME-Version:"}; const HttpHeaderName Pragma = {"Pragma:"}; const HttpHeaderName ProxyAuthenticate = {"Proxy-Authenticate:"}; const HttpHeaderName ProxyConnection = {"Proxy-Connection:"}; const HttpHeaderName Range = {"Range:"}; const HttpHeaderName Referrer = {"Referer:"}; const HttpHeaderName RetryAfter = {"Retry-After:"}; const HttpHeaderName Server = {"Server:"}; const HttpHeaderName ServletEngine = {"Servlet-Engine:"}; const HttpHeaderName SetCookie = {"Set-Cookie:"}; const HttpHeaderName SetCookie2 = {"Set-Cookie2:"}; const HttpHeaderName TE = {"TE:"}; const HttpHeaderName Trailer = {"Trailer:"}; const HttpHeaderName TransferEncoding = {"Transfer-Encoding:"}; const HttpHeaderName Upgrade = {"Upgrade:"}; const HttpHeaderName UserAgent = {"User-Agent:"}; const HttpHeaderName Vary = {"Vary:"}; const HttpHeaderName Warning = {"Warning:"}; const HttpHeaderName WwwAuthenticate = {"WWW-Authenticate:"}; } /******************************************************************************* Declare the traditional set of HTTP response codes *******************************************************************************/ enum HttpResponseCode { Continue = 100, SwitchingProtocols = 101, OK = 200, Created = 201, Accepted = 202, NonAuthoritativeInformation = 203, NoContent = 204, ResetContent = 205, PartialContent = 206, MultipleChoices = 300, MovedPermanently = 301, MovedTemporarily = 302, SeeOther = 303, NotModified = 304, UseProxy = 305, TemporaryRedirect = 307, BadRequest = 400, Unauthorized = 401, PaymentRequired = 402, Forbidden = 403, NotFound = 404, MethodNotAllowed = 405, NotAcceptable = 406, ProxyAuthenticationRequired = 407, RequestTimeout = 408, Conflict = 409, Gone = 410, LengthRequired = 411, PreconditionFailed = 412, RequestEntityTooLarge = 413, RequestURITooLarge = 414, UnsupportedMediaType = 415, RequestedRangeNotSatisfiable = 416, ExpectationFailed = 417, InternalServerError = 500, NotImplemented = 501, BadGateway = 502, ServiceUnavailable = 503, GatewayTimeout = 504, VersionNotSupported = 505, }; /******************************************************************************* Status is a compound type, with a name and a code. *******************************************************************************/ struct HttpStatus { final int code; final char[] name; } /******************************************************************************* Declare the traditional set of HTTP responses *******************************************************************************/ struct HttpResponses { static HttpStatus Continue = {HttpResponseCode.Continue, "Continue"}; static HttpStatus SwitchingProtocols = {HttpResponseCode.SwitchingProtocols, "SwitchingProtocols"}; static HttpStatus OK = {HttpResponseCode.OK, "OK"}; static HttpStatus Created = {HttpResponseCode.Created, "Created"}; static HttpStatus Accepted = {HttpResponseCode.Accepted, "Accepted"}; static HttpStatus NonAuthoritativeInformation = {HttpResponseCode.NonAuthoritativeInformation, "NonAuthoritativeInformation"}; static HttpStatus NoContent = {HttpResponseCode.NoContent, "NoContent"}; static HttpStatus ResetContent = {HttpResponseCode.ResetContent, "ResetContent"}; static HttpStatus PartialContent = {HttpResponseCode.PartialContent, "PartialContent"}; static HttpStatus MultipleChoices = {HttpResponseCode.MultipleChoices, "MultipleChoices"}; static HttpStatus MovedPermanently = {HttpResponseCode.MovedPermanently, "MovedPermanently"}; static HttpStatus MovedTemporarily = {HttpResponseCode.MovedTemporarily, "MovedTemporarily"}; static HttpStatus SeeOther = {HttpResponseCode.SeeOther, "SeeOther"}; static HttpStatus NotModified = {HttpResponseCode.NotModified, "NotModified"}; static HttpStatus UseProxy = {HttpResponseCode.UseProxy, "UseProxy"}; static HttpStatus BadRequest = {HttpResponseCode.BadRequest, "BadRequest"}; static HttpStatus Unauthorized = {HttpResponseCode.Unauthorized, "Unauthorized"}; static HttpStatus PaymentRequired = {HttpResponseCode.PaymentRequired, "PaymentRequired"}; static HttpStatus Forbidden = {HttpResponseCode.Forbidden, "Forbidden"}; static HttpStatus NotFound = {HttpResponseCode.NotFound, "NotFound"}; static HttpStatus MethodNotAllowed = {HttpResponseCode.MethodNotAllowed, "MethodNotAllowed"}; static HttpStatus NotAcceptable = {HttpResponseCode.NotAcceptable, "NotAcceptable"}; static HttpStatus ProxyAuthenticationRequired = {HttpResponseCode.ProxyAuthenticationRequired, "ProxyAuthenticationRequired"}; static HttpStatus RequestTimeout = {HttpResponseCode.RequestTimeout, "RequestTimeout"}; static HttpStatus Conflict = {HttpResponseCode.Conflict, "Conflict"}; static HttpStatus Gone = {HttpResponseCode.Gone, "Gone"}; static HttpStatus LengthRequired = {HttpResponseCode.LengthRequired, "LengthRequired"}; static HttpStatus PreconditionFailed = {HttpResponseCode.PreconditionFailed, "PreconditionFailed"}; static HttpStatus RequestEntityTooLarge = {HttpResponseCode.RequestEntityTooLarge, "RequestEntityTooLarge"}; static HttpStatus RequestURITooLarge = {HttpResponseCode.RequestURITooLarge, "RequestURITooLarge"}; static HttpStatus UnsupportedMediaType = {HttpResponseCode.UnsupportedMediaType, "UnsupportedMediaType"}; static HttpStatus RequestedRangeNotSatisfiable = {HttpResponseCode.RequestedRangeNotSatisfiable, "RequestedRangeNotSatisfiable"}; static HttpStatus ExpectationFailed = {HttpResponseCode.ExpectationFailed, "ExpectationFailed"}; static HttpStatus InternalServerError = {HttpResponseCode.InternalServerError, "InternalServerError"}; static HttpStatus NotImplemented = {HttpResponseCode.NotImplemented, "NotImplemented"}; static HttpStatus BadGateway = {HttpResponseCode.BadGateway, "BadGateway"}; static HttpStatus ServiceUnavailable = {HttpResponseCode.ServiceUnavailable, "ServiceUnavailable"}; static HttpStatus GatewayTimeout = {HttpResponseCode.GatewayTimeout, "GatewayTimeout"}; static HttpStatus VersionNotSupported = {HttpResponseCode.VersionNotSupported, "VersionNotSupported"}; }