【Netty源码解读和权威指南】第86篇:Netty HTTP/2支持——多路复用的Web未来

【Netty源码解读和权威指南】第86篇:Netty HTTP/2支持——多路复用的Web未来
上一篇【第85篇】Netty异常处理机制——exceptionCaught的正确使用姿势下一篇【第87篇】Netty Proxy Protocol支持——获取真实客户端IP一、HTTP/2 vs HTTP/1.1特性HTTP/1.1HTTP/2连接每请求一个连接一个连接多个Stream多路复用❌✅头部压缩❌✅ (HPACK)服务器推送❌✅二进制帧❌✅二、Netty HTTP/2服务器publicclassHttp2Server{publicstaticvoidmain(String[]args)throwsException{SslContextsslCtxSslContextBuilder.forServer(...).build();EventLoopGroupbossnewNioEventLoopGroup(1);EventLoopGroupworkernewNioEventLoopGroup();ServerBootstrapbnewServerBootstrap();b.group(boss,worker).channel(NioServerSocketChannel.class).childHandler(newChannelInitializerSocketChannel(){protectedvoidinitChannel(SocketChannelch){ch.pipeline().addLast(sslCtx.newHandler(ch.alloc()));// HTTP/2帧编解码ch.pipeline().addLast(newHttp2FrameCodecBuilder(true).build());ch.pipeline().addLast(newHttp2ServerHandler());}});b.bind(8443).sync().channel().closeFuture().sync();}}三、HTTP/2帧格式HTTP/2 Frame: ------------------------------------------------ | 长度(3B) | 类型(1B) | 标志(1B) | 保留(1B) | StreamID(4B) | ------------------------------------------------ | 帧载荷(variable) | ------------------------------------------------帧类型DATA、HEADERS、PRIORITY、RST_STREAM、SETTINGS、PUSH_PROMISE、PING、GOAWAY、WINDOW_UPDATE上一篇【第85篇】Netty异常处理机制——exceptionCaught的正确使用姿势下一篇【第87篇】Netty Proxy Protocol支持——获取真实客户端IP