A number of web applications must examine the client request before sending a response. An example is a servlet that has to read (or sniff ) the browser type (often through the User-Agent header). Servlets or other web components read information about the request by examining HTTP request headers . These headers are composed of header names followed by colon characters and their values, such as Accept-Language: en . The headers precede any message body that the client is sending to the server, such as text that has been posted from an HTML form.
Here is an example of a group of request headers sent with a request for a JSP named contextBind.jsp :
GET /home/contextBind.jsp HTTP/1.1 User-Agent: Opera/5.02 (Windows NT 4.0; U) [en] Host: localhost:9000 Accept: text/html, image/png, image/jpeg, image/gif, image/x-xbitmap, */* Accept-Language: en Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 Cookie: mycookie=1051567248639; JSESSIONID=1D51575F3F0B17D26537338B5A29DB1D Connection: Keep-Alive
The recipes in this chapter show how to examine request headers with servlet and JSPs, use filters to alter requests, automatically refresh servlets and JSPs, and count the number of application requests .