org.atmosphere.nettosphere
Class HttpStaticFileServerHandler
java.lang.Object
org.jboss.netty.channel.SimpleChannelUpstreamHandler
org.atmosphere.nettosphere.HttpStaticFileServerHandler
- All Implemented Interfaces:
- org.jboss.netty.channel.ChannelHandler, org.jboss.netty.channel.ChannelUpstreamHandler
- Direct Known Subclasses:
- NettyAtmosphereHandler
public class HttpStaticFileServerHandler
- extends org.jboss.netty.channel.SimpleChannelUpstreamHandler
A simple handler that serves incoming HTTP requests to send their respective
HTTP responses. It also implements 'If-Modified-Since' header to
take advantage of browser cache, as described in
RFC 2616.
How Browser Caching Works
Web browser caching works with HTTP headers as illustrated by the following
sample:
- Request #1 returns the content of
/file1.txt.
- Contents of
/file1.txt is cached by the browser.
- Request #2 for
/file1.txt does return the contents of the
file again. Rather, a 304 Not Modified is returned. This tells the
browser to use the contents stored in its cache.
- The server knows the file has not been modified because the
If-Modified-Since date is the same as the file's last
modified date.
Request #1 Headers
===================
GET /file1.txt HTTP/1.1
Response #1 Headers
===================
HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 22:44:26 GMT
Last-Modified: Wed, 30 Jun 2010 21:36:48 GMT
Expires: Tue, 01 Mar 2012 22:44:26 GMT
Cache-Control: private, max-age=31536000
Request #2 Headers
===================
GET /file1.txt HTTP/1.1
If-Modified-Since: Wed, 30 Jun 2010 21:36:48 GMT
Response #2 Headers
===================
HTTP/1.1 304 Not Modified
Date: Tue, 01 Mar 2011 22:44:28 GMT
| Nested classes/interfaces inherited from interface org.jboss.netty.channel.ChannelHandler |
org.jboss.netty.channel.ChannelHandler.Sharable |
|
Method Summary |
void |
exceptionCaught(org.jboss.netty.channel.ChannelHandlerContext ctx,
org.jboss.netty.channel.ExceptionEvent e)
|
void |
messageReceived(org.jboss.netty.channel.ChannelHandlerContext ctx,
org.jboss.netty.channel.MessageEvent e)
|
protected String |
sanitizeUri(String uri)
|
protected void |
sendError(org.jboss.netty.channel.ChannelHandlerContext ctx,
org.jboss.netty.handler.codec.http.HttpResponseStatus status,
org.jboss.netty.channel.MessageEvent e)
|
| Methods inherited from class org.jboss.netty.channel.SimpleChannelUpstreamHandler |
channelBound, channelClosed, channelConnected, channelDisconnected, channelInterestChanged, channelOpen, channelUnbound, childChannelClosed, childChannelOpen, handleUpstream, writeComplete |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
STATIC_MAPPING
public static final String STATIC_MAPPING
SERVICED
public static final String SERVICED
HttpStaticFileServerHandler
public HttpStaticFileServerHandler(String root)
messageReceived
public void messageReceived(org.jboss.netty.channel.ChannelHandlerContext ctx,
org.jboss.netty.channel.MessageEvent e)
throws Exception
- Overrides:
messageReceived in class org.jboss.netty.channel.SimpleChannelUpstreamHandler
- Throws:
Exception
exceptionCaught
public void exceptionCaught(org.jboss.netty.channel.ChannelHandlerContext ctx,
org.jboss.netty.channel.ExceptionEvent e)
throws Exception
- Overrides:
exceptionCaught in class org.jboss.netty.channel.SimpleChannelUpstreamHandler
- Throws:
Exception
sanitizeUri
protected String sanitizeUri(String uri)
sendError
protected void sendError(org.jboss.netty.channel.ChannelHandlerContext ctx,
org.jboss.netty.handler.codec.http.HttpResponseStatus status,
org.jboss.netty.channel.MessageEvent e)
Copyright © 2012. All Rights Reserved.