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消息中會生成多個消息對象。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章