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