1. 程式人生 > >Jetty9原始碼剖析 - Connection元件 - 概述

Jetty9原始碼剖析 - Connection元件 - 概述

轉載自ph0ly:http://www.ph0ly.com

一、概念

Connection元件就是Jetty裡面邏輯連線,和一條持久的物理連線保持一致。前面說到過Connector元件是通訊層元件,這裡Connection在通訊層上面的協議層,主要完成HTTP協議的解析、響應的處理,為Handler的處理做好前期的準備

二、繼承體系

總體繼承圖

可以看到繼承體系還算是比較簡單,其中HttpConnection就是我們的核心HTTP/1.x的處理的類,對於HTTP協議的處理,他會利用HttpParser、HttpGenerator完成協議的解析和響應報文的生成,另外Request、Response則是實現了HttpServletRequest、HttpServletResponse,後續我們應用層使用的也就是這兩個類。HttpChannel作為HttpConnection與Handler的橋樑,銜接兩者之間的呼叫,同時維護整個Request、Response狀態。HttpInput實現了ServletInputStream,HttpOutput實現了ServletOutputStream,讓Request、Response能有流的實現。另外值得一提的是物理連線唯一對映一條邏輯Connection、EndPoint、HttpChannel、Request、Response、HttpParser、HttpGenerator、HttpInput、HttpOutput,Jetty最一次請求完成後,會重置相關類的狀態,從而能複用