类 HttpStaticFileServerHandler

  • 所有已实现的接口:
    io.netty.channel.ChannelHandler, io.netty.channel.ChannelInboundHandler

    @Sharable
    public class HttpStaticFileServerHandler
    extends io.netty.channel.SimpleChannelInboundHandler<HttpRequest>
    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:

    1. Request #1 returns the content of /file1.txt.
    2. Contents of /file1.txt is cached by the browser.
    3. Request #2 for /file1.txt does not 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.
    4. 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
    
     
    • 构造器详细资料

      • HttpStaticFileServerHandler

        public HttpStaticFileServerHandler​(String staticPath)
    • 方法详细资料

      • channelRead0

        public void channelRead0​(io.netty.channel.ChannelHandlerContext ctx,
                                 HttpRequest request)
                          throws Exception
        指定者:
        channelRead0 在类中 io.netty.channel.SimpleChannelInboundHandler<HttpRequest>
        抛出:
        Exception
      • handle

        public void handle​(io.netty.channel.ChannelHandlerContext ctx,
                           HttpRequest httpRequest)
      • exceptionCaught

        public void exceptionCaught​(io.netty.channel.ChannelHandlerContext ctx,
                                    Throwable cause)
        指定者:
        exceptionCaught 在接口中 io.netty.channel.ChannelHandler
        指定者:
        exceptionCaught 在接口中 io.netty.channel.ChannelInboundHandler
        覆盖:
        exceptionCaught 在类中 io.netty.channel.ChannelInboundHandlerAdapter