Netty解析Http协议的方式(详细总结)

HttpServerCodec是最终类,不可继承。websocket协议本身是基于http协议的,所以也可以使用http解编码器 

HttpServerCodec的功能有两个:HttpRequestDecoder和HttpResponseEncoder,即在pipline.addLast时要么开始就添加一个HttpServerCodec,或HttpRequestDecoder和HttpResponseEncoder分开添加。所以分析HttpServerCodec就是分析HttpRequestDecoder和HttpResponseEncoder。

结合HttpObjectAggregator看看如何操作http协议。从上可以看出,当我们用POST方式请求服务器的时候,对应的参数信息是保存在message body中的,如果只是单纯的用HttpServerCodec是无法完全的解析Http POST请求的,因为HttpServerCodec只能获取uri中参数,所以需要加上HttpObjectAggregator

HttpObjectAggregator是Http消息聚合器,Aggregator这个单次就是“聚合,聚集”的意思。http消息在传输的过程中可能是一片片的消息片端,所以当服务器接收到的是一片片的时候,就需要HttpObjectAggregator来把它们聚合起来。

它的作用是将多个消息转换成单一的FullHttpRequest 或者 FullHttpResponse,原因是HTTP解码器 在每个HTTP消息中会生成多个消息对象。

 

你可能感兴趣的:(netty,java)