View Javadoc

1   // ========================================================================
2   // Copyright (c) 2004-2009 Mort Bay Consulting Pty. Ltd.
3   // ------------------------------------------------------------------------
4   // All rights reserved. This program and the accompanying materials
5   // are made available under the terms of the Eclipse Public License v1.0
6   // and Apache License v2.0 which accompanies this distribution.
7   // The Eclipse Public License is available at 
8   // http://www.eclipse.org/legal/epl-v10.html
9   // The Apache License v2.0 is available at
10  // http://www.opensource.org/licenses/apache2.0.php
11  // You may elect to redistribute this code under either of these licenses. 
12  // ========================================================================
13  
14  package org.eclipse.jetty.http;
15  
16  import org.eclipse.jetty.io.Buffer;
17  import org.eclipse.jetty.io.BufferCache;
18  
19  /* ------------------------------------------------------------------------------- */
20  /** 
21   */
22  public class HttpHeaders extends BufferCache
23  {
24      /* ------------------------------------------------------------ */
25      /** General Fields.
26       */
27      public final static String 
28          CONNECTION= "Connection",
29          CACHE_CONTROL= "Cache-Control",
30          DATE= "Date",
31          PRAGMA= "Pragma",
32          PROXY_CONNECTION = "Proxy-Connection",
33          TRAILER= "Trailer",
34          TRANSFER_ENCODING= "Transfer-Encoding",
35          UPGRADE= "Upgrade",
36          VIA= "Via",
37          WARNING= "Warning",
38          NEGOTIATE= "Negotiate";
39  
40      /* ------------------------------------------------------------ */
41      /** Entity Fields.
42       */
43      public final static String ALLOW= "Allow",
44          CONTENT_ENCODING= "Content-Encoding",
45          CONTENT_LANGUAGE= "Content-Language",
46          CONTENT_LENGTH= "Content-Length",
47          CONTENT_LOCATION= "Content-Location",
48          CONTENT_MD5= "Content-MD5",
49          CONTENT_RANGE= "Content-Range",
50          CONTENT_TYPE= "Content-Type",
51          EXPIRES= "Expires",
52          LAST_MODIFIED= "Last-Modified";
53  
54      /* ------------------------------------------------------------ */
55      /** Request Fields.
56       */
57      public final static String ACCEPT= "Accept",
58          ACCEPT_CHARSET= "Accept-Charset",
59          ACCEPT_ENCODING= "Accept-Encoding",
60          ACCEPT_LANGUAGE= "Accept-Language",
61          AUTHORIZATION= "Authorization",
62          EXPECT= "Expect",
63          FORWARDED= "Forwarded",
64          FROM= "From",
65          HOST= "Host",
66          IF_MATCH= "If-Match",
67          IF_MODIFIED_SINCE= "If-Modified-Since",
68          IF_NONE_MATCH= "If-None-Match",
69          IF_RANGE= "If-Range",
70          IF_UNMODIFIED_SINCE= "If-Unmodified-Since",
71          KEEP_ALIVE= "Keep-Alive",
72          MAX_FORWARDS= "Max-Forwards",
73          PROXY_AUTHORIZATION= "Proxy-Authorization",
74          RANGE= "Range",
75          REQUEST_RANGE= "Request-Range",
76          REFERER= "Referer",
77          TE= "TE",
78          USER_AGENT= "User-Agent",
79          X_FORWARDED_FOR= "X-Forwarded-For",
80          X_FORWARDED_PROTO= "X-Forwarded-Proto",
81          X_FORWARDED_SERVER= "X-Forwarded-Server",
82          X_FORWARDED_HOST= "X-Forwarded-Host";
83  
84      /* ------------------------------------------------------------ */
85      /** Response Fields.
86       */
87      public final static String ACCEPT_RANGES= "Accept-Ranges",
88          AGE= "Age",
89          ETAG= "ETag",
90          LOCATION= "Location",
91          PROXY_AUTHENTICATE= "Proxy-Authenticate",
92          RETRY_AFTER= "Retry-After",
93          SERVER= "Server",
94          SERVLET_ENGINE= "Servlet-Engine",
95          VARY= "Vary",
96          WWW_AUTHENTICATE= "WWW-Authenticate";
97  
98      /* ------------------------------------------------------------ */
99      /** Other Fields.
100      */
101     public final static String COOKIE= "Cookie",
102         SET_COOKIE= "Set-Cookie",
103         SET_COOKIE2= "Set-Cookie2",
104         MIME_VERSION= "MIME-Version",
105         IDENTITY= "identity";
106 
107     public final static int CONNECTION_ORDINAL= 1,
108         DATE_ORDINAL= 2,
109         PRAGMA_ORDINAL= 3,
110         TRAILER_ORDINAL= 4,
111         TRANSFER_ENCODING_ORDINAL= 5,
112         UPGRADE_ORDINAL= 6,
113         VIA_ORDINAL= 7,
114         WARNING_ORDINAL= 8,
115         ALLOW_ORDINAL= 9,
116         CONTENT_ENCODING_ORDINAL= 10,
117         CONTENT_LANGUAGE_ORDINAL= 11,
118         CONTENT_LENGTH_ORDINAL= 12,
119         CONTENT_LOCATION_ORDINAL= 13,
120         CONTENT_MD5_ORDINAL= 14,
121         CONTENT_RANGE_ORDINAL= 15,
122         CONTENT_TYPE_ORDINAL= 16,
123         EXPIRES_ORDINAL= 17,
124         LAST_MODIFIED_ORDINAL= 18,
125         ACCEPT_ORDINAL= 19,
126         ACCEPT_CHARSET_ORDINAL= 20,
127         ACCEPT_ENCODING_ORDINAL= 21,
128         ACCEPT_LANGUAGE_ORDINAL= 22,
129         AUTHORIZATION_ORDINAL= 23,
130         EXPECT_ORDINAL= 24,
131         FORWARDED_ORDINAL= 25,
132         FROM_ORDINAL= 26,
133         HOST_ORDINAL= 27,
134         IF_MATCH_ORDINAL= 28,
135         IF_MODIFIED_SINCE_ORDINAL= 29,
136         IF_NONE_MATCH_ORDINAL= 30,
137         IF_RANGE_ORDINAL= 31,
138         IF_UNMODIFIED_SINCE_ORDINAL= 32,
139         KEEP_ALIVE_ORDINAL= 33,
140         MAX_FORWARDS_ORDINAL= 34,
141         PROXY_AUTHORIZATION_ORDINAL= 35,
142         RANGE_ORDINAL= 36,
143         REQUEST_RANGE_ORDINAL= 37,
144         REFERER_ORDINAL= 38,
145         TE_ORDINAL= 39,
146         USER_AGENT_ORDINAL= 40,
147         X_FORWARDED_FOR_ORDINAL= 41,
148         ACCEPT_RANGES_ORDINAL= 42,
149         AGE_ORDINAL= 43,
150         ETAG_ORDINAL= 44,
151         LOCATION_ORDINAL= 45,
152         PROXY_AUTHENTICATE_ORDINAL= 46,
153         RETRY_AFTER_ORDINAL= 47,
154         SERVER_ORDINAL= 48,
155         SERVLET_ENGINE_ORDINAL= 49,
156         VARY_ORDINAL= 50,
157         WWW_AUTHENTICATE_ORDINAL= 51,
158         COOKIE_ORDINAL= 52,
159         SET_COOKIE_ORDINAL= 53,
160         SET_COOKIE2_ORDINAL= 54,
161         MIME_VERSION_ORDINAL= 55,
162         IDENTITY_ORDINAL= 56,
163         CACHE_CONTROL_ORDINAL=57,
164         PROXY_CONNECTION_ORDINAL=58,
165         X_FORWARDED_PROTO_ORDINAL=59,
166         X_FORWARDED_SERVER_ORDINAL=60,
167         X_FORWARDED_HOST_ORDINAL=61;
168 
169     public final static HttpHeaders CACHE= new HttpHeaders();
170     
171     public final static Buffer
172         HOST_BUFFER=CACHE.add(HOST,HOST_ORDINAL),
173         ACCEPT_BUFFER=CACHE.add(ACCEPT,ACCEPT_ORDINAL),
174         ACCEPT_CHARSET_BUFFER=CACHE.add(ACCEPT_CHARSET,ACCEPT_CHARSET_ORDINAL),
175         ACCEPT_ENCODING_BUFFER=CACHE.add(ACCEPT_ENCODING,ACCEPT_ENCODING_ORDINAL),
176         ACCEPT_LANGUAGE_BUFFER=CACHE.add(ACCEPT_LANGUAGE,ACCEPT_LANGUAGE_ORDINAL),
177         
178         CONTENT_LENGTH_BUFFER=CACHE.add(CONTENT_LENGTH,CONTENT_LENGTH_ORDINAL),
179         CONNECTION_BUFFER=CACHE.add(CONNECTION,CONNECTION_ORDINAL),
180         CACHE_CONTROL_BUFFER=CACHE.add(CACHE_CONTROL,CACHE_CONTROL_ORDINAL),
181         DATE_BUFFER=CACHE.add(DATE,DATE_ORDINAL),
182         PRAGMA_BUFFER=CACHE.add(PRAGMA,PRAGMA_ORDINAL),
183         TRAILER_BUFFER=CACHE.add(TRAILER,TRAILER_ORDINAL),
184         TRANSFER_ENCODING_BUFFER=CACHE.add(TRANSFER_ENCODING,TRANSFER_ENCODING_ORDINAL),
185         UPGRADE_BUFFER=CACHE.add(UPGRADE,UPGRADE_ORDINAL),
186         VIA_BUFFER=CACHE.add(VIA,VIA_ORDINAL),
187         WARNING_BUFFER=CACHE.add(WARNING,WARNING_ORDINAL),
188         ALLOW_BUFFER=CACHE.add(ALLOW,ALLOW_ORDINAL),
189         CONTENT_ENCODING_BUFFER=CACHE.add(CONTENT_ENCODING,CONTENT_ENCODING_ORDINAL),
190         CONTENT_LANGUAGE_BUFFER=CACHE.add(CONTENT_LANGUAGE,CONTENT_LANGUAGE_ORDINAL),
191         CONTENT_LOCATION_BUFFER=CACHE.add(CONTENT_LOCATION,CONTENT_LOCATION_ORDINAL),
192         CONTENT_MD5_BUFFER=CACHE.add(CONTENT_MD5,CONTENT_MD5_ORDINAL),
193         CONTENT_RANGE_BUFFER=CACHE.add(CONTENT_RANGE,CONTENT_RANGE_ORDINAL),
194         CONTENT_TYPE_BUFFER=CACHE.add(CONTENT_TYPE,CONTENT_TYPE_ORDINAL),
195         EXPIRES_BUFFER=CACHE.add(EXPIRES,EXPIRES_ORDINAL),
196         LAST_MODIFIED_BUFFER=CACHE.add(LAST_MODIFIED,LAST_MODIFIED_ORDINAL),
197         AUTHORIZATION_BUFFER=CACHE.add(AUTHORIZATION,AUTHORIZATION_ORDINAL),
198         EXPECT_BUFFER=CACHE.add(EXPECT,EXPECT_ORDINAL),
199         FORWARDED_BUFFER=CACHE.add(FORWARDED,FORWARDED_ORDINAL),
200         FROM_BUFFER=CACHE.add(FROM,FROM_ORDINAL),
201         IF_MATCH_BUFFER=CACHE.add(IF_MATCH,IF_MATCH_ORDINAL),
202         IF_MODIFIED_SINCE_BUFFER=CACHE.add(IF_MODIFIED_SINCE,IF_MODIFIED_SINCE_ORDINAL),
203         IF_NONE_MATCH_BUFFER=CACHE.add(IF_NONE_MATCH,IF_NONE_MATCH_ORDINAL),
204         IF_RANGE_BUFFER=CACHE.add(IF_RANGE,IF_RANGE_ORDINAL),
205         IF_UNMODIFIED_SINCE_BUFFER=CACHE.add(IF_UNMODIFIED_SINCE,IF_UNMODIFIED_SINCE_ORDINAL),
206         KEEP_ALIVE_BUFFER=CACHE.add(KEEP_ALIVE,KEEP_ALIVE_ORDINAL),
207         MAX_FORWARDS_BUFFER=CACHE.add(MAX_FORWARDS,MAX_FORWARDS_ORDINAL),
208         PROXY_AUTHORIZATION_BUFFER=CACHE.add(PROXY_AUTHORIZATION,PROXY_AUTHORIZATION_ORDINAL),
209         RANGE_BUFFER=CACHE.add(RANGE,RANGE_ORDINAL),
210         REQUEST_RANGE_BUFFER=CACHE.add(REQUEST_RANGE,REQUEST_RANGE_ORDINAL),
211         REFERER_BUFFER=CACHE.add(REFERER,REFERER_ORDINAL),
212         TE_BUFFER=CACHE.add(TE,TE_ORDINAL),
213         USER_AGENT_BUFFER=CACHE.add(USER_AGENT,USER_AGENT_ORDINAL),
214         X_FORWARDED_FOR_BUFFER=CACHE.add(X_FORWARDED_FOR,X_FORWARDED_FOR_ORDINAL),
215         X_FORWARDED_PROTO_BUFFER=CACHE.add(X_FORWARDED_PROTO,X_FORWARDED_PROTO_ORDINAL),
216         X_FORWARDED_SERVER_BUFFER=CACHE.add(X_FORWARDED_SERVER,X_FORWARDED_SERVER_ORDINAL),
217         X_FORWARDED_HOST_BUFFER=CACHE.add(X_FORWARDED_HOST,X_FORWARDED_HOST_ORDINAL),
218         ACCEPT_RANGES_BUFFER=CACHE.add(ACCEPT_RANGES,ACCEPT_RANGES_ORDINAL),
219         AGE_BUFFER=CACHE.add(AGE,AGE_ORDINAL),
220         ETAG_BUFFER=CACHE.add(ETAG,ETAG_ORDINAL),
221         LOCATION_BUFFER=CACHE.add(LOCATION,LOCATION_ORDINAL),
222         PROXY_AUTHENTICATE_BUFFER=CACHE.add(PROXY_AUTHENTICATE,PROXY_AUTHENTICATE_ORDINAL),
223         RETRY_AFTER_BUFFER=CACHE.add(RETRY_AFTER,RETRY_AFTER_ORDINAL),
224         SERVER_BUFFER=CACHE.add(SERVER,SERVER_ORDINAL),
225         SERVLET_ENGINE_BUFFER=CACHE.add(SERVLET_ENGINE,SERVLET_ENGINE_ORDINAL),
226         VARY_BUFFER=CACHE.add(VARY,VARY_ORDINAL),
227         WWW_AUTHENTICATE_BUFFER=CACHE.add(WWW_AUTHENTICATE,WWW_AUTHENTICATE_ORDINAL),
228         COOKIE_BUFFER=CACHE.add(COOKIE,COOKIE_ORDINAL),
229         SET_COOKIE_BUFFER=CACHE.add(SET_COOKIE,SET_COOKIE_ORDINAL),
230         SET_COOKIE2_BUFFER=CACHE.add(SET_COOKIE2,SET_COOKIE2_ORDINAL),
231         MIME_VERSION_BUFFER=CACHE.add(MIME_VERSION,MIME_VERSION_ORDINAL),
232         IDENTITY_BUFFER=CACHE.add(IDENTITY,IDENTITY_ORDINAL),
233         PROXY_CONNECTION_BUFFER=CACHE.add(PROXY_CONNECTION,PROXY_CONNECTION_ORDINAL);
234     
235     
236 }