Home / Class/ Http1RequestHandler Class — netty Architecture

Http1RequestHandler Class — netty Architecture

Architecture documentation for the Http1RequestHandler class in Http1RequestHandler.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  2ea0c6b1_70d5_c2f8_f6dd_5ee379123b0f["Http1RequestHandler"]
  ccbb4ee2_ba54_a780_6be2_8a0c06d9ae89["Http1RequestHandler.java"]
  2ea0c6b1_70d5_c2f8_f6dd_5ee379123b0f -->|defined in| ccbb4ee2_ba54_a780_6be2_8a0c06d9ae89
  031268bf_7126_2ea6_8996_f12d2c81e51e["channelRead0()"]
  2ea0c6b1_70d5_c2f8_f6dd_5ee379123b0f -->|method| 031268bf_7126_2ea6_8996_f12d2c81e51e
  eabb302d_5131_9d13_d55d_35e34b96deb6["sendResponse()"]
  2ea0c6b1_70d5_c2f8_f6dd_5ee379123b0f -->|method| eabb302d_5131_9d13_d55d_35e34b96deb6

Relationship Graph

Source Code

example/src/main/java/io/netty/example/http2/tiles/Http1RequestHandler.java lines 40–70

public final class Http1RequestHandler extends Http2RequestHandler {

    @Override
    protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest request) throws Exception {
        if (HttpUtil.is100ContinueExpected(request)) {
            ctx.write(new DefaultFullHttpResponse(HTTP_1_1, CONTINUE, Unpooled.EMPTY_BUFFER));
        }
        super.channelRead0(ctx, request);
    }

    @Override
    protected void sendResponse(final ChannelHandlerContext ctx, String streamId, int latency,
            final FullHttpResponse response, final FullHttpRequest request) {
        HttpUtil.setContentLength(response, response.content().readableBytes());
        ctx.executor().schedule(new Runnable() {
            @Override
            public void run() {
                if (isKeepAlive(request)) {
                    if (request.protocolVersion().equals(HTTP_1_0)) {
                        response.headers().set(CONNECTION, KEEP_ALIVE);
                    }
                    ctx.writeAndFlush(response);
                } else {
                    // Tell the client we're going to close the connection.
                    response.headers().set(CONNECTION, CLOSE);
                    ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE);
                }
            }
        }, latency, TimeUnit.MILLISECONDS);
    }
}

Frequently Asked Questions

What is the Http1RequestHandler class?
Http1RequestHandler is a class in the netty codebase, defined in example/src/main/java/io/netty/example/http2/tiles/Http1RequestHandler.java.
Where is Http1RequestHandler defined?
Http1RequestHandler is defined in example/src/main/java/io/netty/example/http2/tiles/Http1RequestHandler.java at line 40.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free