1
2
3
4
5
6
7 package org.mule.transport.http;
8
9 import org.mule.api.config.MuleProperties;
10 import org.mule.util.MapUtils;
11
12 import java.util.Collections;
13 import java.util.Map;
14
15 import org.apache.commons.collections.map.CaseInsensitiveMap;
16
17
18
19
20
21 public class HttpConstants
22 {
23
24 public static final String HTTP10 = "HTTP/1.0";
25 public static final String HTTP1X = "HTTP/1.x";
26 public static final String HTTP11 = "HTTP/1.1";
27 public static final String DEFAULT_HTTP_VERSION = HttpConstants.HTTP11;
28
29
30 public static final int DEFAULT_HTTP_PORT = 80;
31
32
33 public static final String METHOD_OPTIONS = "OPTIONS";
34 public static final String METHOD_GET = "GET";
35 public static final String METHOD_HEAD = "HEAD";
36 public static final String METHOD_PATCH = "PATCH";
37 public static final String METHOD_POST = "POST";
38 public static final String METHOD_PUT = "PUT";
39 public static final String METHOD_DELETE = "DELETE";
40 public static final String METHOD_TRACE = "TRACE";
41 public static final String METHOD_CONNECT = "CONNECT";
42
43
44 public static final String DATE_FORMAT = "EEE, dd MMM yyyy hh:mm:ss zzz";
45
46
47 public static final String CRLF = "\r\n";
48
49 public static final String HEADER_CONTENT_SEPARATOR = CRLF + CRLF;
50
51
52 public static final String DEFAULT_CONTENT_TYPE = "text/plain";
53
54
55 public static final String HEADER_ACCEPT = "Accept";
56 public static final String HEADER_ACCEPT_CHARSET = "Accept-Charset";
57 public static final String HEADER_ACCEPT_ENCODING = "Accept-Encoding";
58 public static final String HEADER_ACCEPT_LANGUAGE = "Accept-Language";
59 public static final String HEADER_ACCEPT_RANGES = "Accept-Ranges";
60 public static final String HEADER_AGE = "Age";
61 public static final String HEADER_ALLOW = "Allow";
62 public static final String HEADER_AUTHORIZATION = "Authorization";
63 public static final String HEADER_CACHE_CONTROL = "Cache-Control";
64 public static final String HEADER_CONNECTION = "Connection";
65 public static final String HEADER_CONTENT_ENCODING = "Content-Encoding";
66 public static final String HEADER_CONTENT_DISPOSITION = "Content-Disposition";
67 public static final String HEADER_CONTENT_LANGUAGE = "Content-Language";
68 public static final String HEADER_CONTENT_LENGTH = "Content-Length";
69 public static final String HEADER_CONTENT_LOCATION = "Content-Location";
70 public static final String HEADER_CONTENT_MD5 = "Content-MD5";
71 public static final String HEADER_CONTENT_RANGE = "Content-Range";
72 public static final String HEADER_CONTENT_TYPE = "Content-Type";
73 public static final String HEADER_COOKIE = "Cookie";
74 public static final String HEADER_COOKIE_SET = "Set-Cookie";
75 public static final String HEADER_DATE = "Date";
76 public static final String HEADER_ETAG = "ETag";
77 public static final String HEADER_EXPECT = "Expect";
78 public static final String HEADER_EXPIRES = "Expires";
79 public static final String HEADER_FROM = "From";
80 public static final String HEADER_HOST = "Host";
81 public static final String HEADER_IF_MATCH = "If-Match";
82 public static final String HEADER_IF_MODIFIED_SINCE = "If-Modified-Since";
83 public static final String HEADER_IF_NONE_MATCH = "If-None-Match";
84 public static final String HEADER_IF_RANGE = "If-Range";
85 public static final String HEADER_IF_UNMODIFIED_SINCE = "If-Unmodified-Since";
86 public static final String HEADER_KEEP_ALIVE = "Keep-Alive";
87 public static final String HEADER_LAST_MODIFIED = "Last-Modified";
88 public static final String HEADER_LOCATION = "Location";
89 public static final String HEADER_MAX_FORWARDS = "Max-Forwards";
90 public static final String HEADER_PRAGMA = "Pragma";
91 public static final String HEADER_PROXY_AUTHENTICATE = "Proxy-Authenticate";
92 public static final String HEADER_PROXY_AUTHORIZATION = "Proxy-Authorization";
93 public static final String HEADER_RANGE = "Range";
94 public static final String HEADER_REFERER = "Referer";
95 public static final String HEADER_RETRY_AFTER = "Retry-After";
96 public static final String HEADER_SERVER = "Server";
97 public static final String HEADER_SLUG = "Slug";
98 public static final String HEADER_TE = "TE";
99 public static final String HEADER_TRAILER = "Trailer";
100 public static final String HEADER_TRANSFER_ENCODING = "Transfer-Encoding";
101 public static final String HEADER_UPGRADE = "Upgrade";
102 public static final String HEADER_USER_AGENT = "User-Agent";
103 public static final String HEADER_VARY = "Vary";
104 public static final String HEADER_VIA = "Via";
105 public static final String HEADER_WARNING = "Warning";
106 public static final String HEADER_WWW_AUTHENTICATE = "WWW-Authenticate";
107
108
109 public static final String HEADER_EXPECT_CONTINUE_REQUEST_VALUE = "100-continue";
110
111
112 public static final String TRANSFER_ENCODING_CHUNKED = "chunked";
113
114
115 public static final String CUSTOM_HEADER_PREFIX = "X-";
116
117
118 public static final String X_PROPERTY_PREFIX = CUSTOM_HEADER_PREFIX + MuleProperties.PROPERTY_PREFIX;
119
120
121 public static final String HEADER_MULE_SESSION = CUSTOM_HEADER_PREFIX + MuleProperties.MULE_SESSION_PROPERTY;
122
123
124 public static final Map<String, String> REQUEST_HEADER_NAMES;
125 public static final Map<String, String> RESPONSE_HEADER_NAMES;
126 public static final Map<String, String> ALL_HEADER_NAMES;
127
128
129 public static final int SC_CONTINUE = 100;
130 public static final int SC_SWITCHING_PROTOCOLS = 101;
131 public static final int SC_PROCESSING = 102;
132 public static final int SC_OK = 200;
133 public static final int SC_CREATED = 201;
134 public static final int SC_ACCEPTED = 202;
135 public static final int SC_NON_AUTHORITATIVE_INFORMATION = 203;
136 public static final int SC_NO_CONTENT = 204;
137 public static final int SC_RESET_CONTENT = 205;
138 public static final int SC_PARTIAL_CONTENT = 206;
139 public static final int SC_MULTI_STATUS = 207;
140 public static final int SC_MULTIPLE_CHOICES = 300;
141 public static final int SC_MOVED_PERMANENTLY = 301;
142 public static final int SC_MOVED_TEMPORARILY = 302;
143 public static final int SC_SEE_OTHER = 303;
144 public static final int SC_NOT_MODIFIED = 304;
145 public static final int SC_USE_PROXY = 305;
146 public static final int SC_TEMPORARY_REDIRECT = 307;
147 public static final int SC_BAD_REQUEST = 400;
148 public static final int SC_UNAUTHORIZED = 401;
149 public static final int SC_PAYMENT_REQUIRED = 402;
150 public static final int SC_FORBIDDEN = 403;
151 public static final int SC_NOT_FOUND = 404;
152 public static final int SC_METHOD_NOT_ALLOWED = 405;
153 public static final int SC_NOT_ACCEPTABLE = 406;
154 public static final int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
155 public static final int SC_REQUEST_TIMEOUT = 408;
156 public static final int SC_CONFLICT = 409;
157 public static final int SC_GONE = 410;
158 public static final int SC_LENGTH_REQUIRED = 411;
159 public static final int SC_PRECONDITION_FAILED = 412;
160 public static final int SC_REQUEST_TOO_LONG = 413;
161 public static final int SC_REQUEST_URI_TOO_LONG = 414;
162 public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415;
163 public static final int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
164 public static final int SC_EXPECTATION_FAILED = 417;
165 public static final int SC_INSUFFICIENT_SPACE_ON_RESOURCE = 419;
166 public static final int SC_METHOD_FAILURE = 420;
167 public static final int SC_UNPROCESSABLE_ENTITY = 422;
168 public static final int SC_LOCKED = 423;
169 public static final int SC_FAILED_DEPENDENCY = 424;
170 public static final int SC_INTERNAL_SERVER_ERROR = 500;
171 public static final int SC_NOT_IMPLEMENTED = 501;
172 public static final int SC_BAD_GATEWAY = 502;
173 public static final int SC_SERVICE_UNAVAILABLE = 503;
174 public static final int SC_GATEWAY_TIMEOUT = 504;
175 public static final int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
176 public static final int SC_INSUFFICIENT_STORAGE = 507;
177
178 static
179 {
180 String[] strings = new String[]{HEADER_ACCEPT, HEADER_ACCEPT_CHARSET, HEADER_ACCEPT_ENCODING,
181 HEADER_ACCEPT_LANGUAGE, HEADER_AUTHORIZATION, HEADER_CACHE_CONTROL, HEADER_CONNECTION,
182 HEADER_COOKIE, HEADER_DATE, HEADER_EXPECT, HEADER_FROM, HEADER_HOST, HEADER_IF_MATCH,
183 HEADER_IF_MODIFIED_SINCE, HEADER_IF_NONE_MATCH, HEADER_IF_RANGE, HEADER_IF_UNMODIFIED_SINCE,
184 HEADER_MAX_FORWARDS, HEADER_PRAGMA, HEADER_PROXY_AUTHORIZATION, HEADER_RANGE, HEADER_REFERER,
185 HEADER_TE, HEADER_TRAILER, HEADER_TRANSFER_ENCODING, HEADER_UPGRADE, HEADER_USER_AGENT,
186 HEADER_VIA, HEADER_WARNING, HEADER_CONTENT_LENGTH, HEADER_SLUG};
187
188 REQUEST_HEADER_NAMES = Collections.unmodifiableMap(MapUtils.mapWithKeysAndValues(
189 CaseInsensitiveMap.class, strings, strings));
190
191 strings = new String[]{HEADER_ACCEPT_RANGES, HEADER_AGE, HEADER_ALLOW, HEADER_CACHE_CONTROL,
192 HEADER_CONNECTION, HEADER_CONTENT_ENCODING, HEADER_CONTENT_DISPOSITION,
193 HEADER_CONTENT_LANGUAGE, HEADER_COOKIE_SET, HEADER_CONTENT_LOCATION, HEADER_CONTENT_MD5,
194 HEADER_CONTENT_RANGE, HEADER_DATE, HEADER_ETAG, HEADER_EXPIRES, HEADER_LAST_MODIFIED,
195 HEADER_LOCATION, HEADER_PRAGMA, HEADER_PROXY_AUTHENTICATE, HEADER_RETRY_AFTER,
196 HEADER_SERVER, HEADER_TRAILER, HEADER_TRANSFER_ENCODING, HEADER_UPGRADE, HEADER_VARY,
197 HEADER_VIA, HEADER_WARNING, HEADER_WWW_AUTHENTICATE};
198
199 RESPONSE_HEADER_NAMES = Collections.unmodifiableMap(MapUtils.mapWithKeysAndValues(
200 CaseInsensitiveMap.class, strings, strings));
201
202 strings = new String[]{HEADER_ALLOW, HEADER_CACHE_CONTROL, HEADER_CONNECTION,
203 HEADER_CONTENT_DISPOSITION, HEADER_CONTENT_ENCODING, HEADER_CONTENT_LANGUAGE,
204 HEADER_CONTENT_LENGTH, HEADER_CONTENT_LOCATION, HEADER_CONTENT_MD5, HEADER_CONTENT_RANGE,
205 HEADER_CONTENT_TYPE, HEADER_DATE, HEADER_EXPIRES, HEADER_KEEP_ALIVE, HEADER_LAST_MODIFIED,
206 HEADER_PRAGMA, HEADER_TRAILER, HEADER_TRANSFER_ENCODING, HEADER_UPGRADE, HEADER_VIA,
207 HEADER_WARNING};
208
209 Map<String, String> allHeaders = MapUtils.mapWithKeysAndValues(CaseInsensitiveMap.class, strings,
210 strings);
211 allHeaders.putAll(REQUEST_HEADER_NAMES);
212 allHeaders.putAll(RESPONSE_HEADER_NAMES);
213 ALL_HEADER_NAMES = Collections.unmodifiableMap(allHeaders);
214 }
215
216 }