一、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