一、Catalina有兩個主要模塊:cookie
(1)鏈接器(connector):jsp
- 解析http
- 使servlet可以獲取到請求頭、cookie、參數/值等信息
- 本章中鏈接器和容器將分開
(2)容器(container)servlet
二、三個模塊test
(1)啓動模塊:BootStrap類,負責啓動應用程序效率
(2)鏈接模塊:容器
- 鏈接器及其支持類(HttpConnector::等待Http請求的工做,HttpProcessor)
- Http請求的類(HttpRequest)及其支持的類
- Http響應的類(HttpResponse)及其支持的類
- 外觀類(HttpRequestFacade、HttpResponseFacade)
- 常量類
(3)核心模塊sso
- ServletProcessor類
- StaticResourceProcessor類
三、鏈接器須要解析http請求的全部信息請求
四、使用SocketInputStream類(InputStream的包裝類)程序
五、SocketInputStream類倆重要方法方法
- readRequestLine():返回請求第一行內容:POST /example/test.jsp HTTP/1.1
- 字節流從前向後調取,readRequestLine 必須在 readHeader 前調用
- readHeader():每次調用返回一個 key/value 直到全部請求頭讀完
- readRequestLine() 返回值是 HttpRequestLine
- readHeader () 返回值是 HttpHeader