tomcat学习笔记之连接器

1、Catalina有两个主要模块:

(1)连接器(connector):

  • 解析http
  • 使servlet能够获取到请求头、cookie、参数/值等信息
  • 本章中连接器和容器将分开

(2)容器(container)

2、三个模块

(1)启动模块:BootStrap类,负责启动应用程序

(2)连接模块:

  • 连接器及其支持类(HttpConnector::等待Http请求的工作,HttpProcessor)
  • Http请求的类(HttpRequest)及其支持的类
  • Http响应的类(HttpResponse)及其支持的类
  • 外观类(HttpRequestFacade、HttpResponseFacade)
  • 常量类

(3)核心模块

  • ServletProcessor类
  • StaticResourceProcessor类

3、连接器需要解析http请求的所有信息

  • 为了提高效率,参数被真正调用前是不会被解析的

4、使用SocketInputStream类(InputStream的包装类)

  • 从套接字里面的InputStream读取字节流

5、SocketInputStream类俩重要方法

  • readRequestLine():返回请求第一行内容:POST  /example/test.jsp  HTTP/1.1
  • 字节流从前向后调取,readRequestLine 必须在  readHeader 前调用
  • readHeader():每次调用返回一个  key/value  直到所有请求头读完
  • readRequestLine()  返回值是 HttpRequestLine
  • readHeader () 返回值是 HttpHeader

猜你喜欢

转载自my.oschina.net/u/3847203/blog/1818253