深入剖析tomcat读书笔记——连接器
2016-04-19 10:56
323 查看
最近阅读了深入剖析tomcat 这本书,顺便做读书笔记方便自己日后复习,同时也可以供他人参考。以下内容是第三章的内容,主要讲述简化了连接器:
这里主要涉及到以下几个类
HttpConnector 负责创建一个服务器套接字,套接字会等待传入的Http请求
HttpProcessor 负责生产HttpRequest和HttpResponse
HttpRequest 表示Http的请求对象
HttpRequestFacade http请求对象的门面类
HttpResponse http的响应类
HttpResponseFacade http响应的门面类
HttpRequest类实现了HttpServletRequest,并被作为参数传递给servlet实例的service方法,因此需要设置HttpRequest的成员变量,这些值包括:URI,查询字符串,参数,Cookie和其他一些请求头信息。
SocketInputStream是InputStream的封装,这个类提供了两个重要的方法分别是readRequestLine()和readHeader()方法,readRequestLine方法返回了HTTP请求的第一行的内容,包含了URI,请求方法和HTTP的版本信息这些内容。readHeader方法会返回一个名/值对,所以应该重复的调用这个方法直到把所有的请求头信息读完。这两个方法分别返回HttpRequestLine实例和HttpHeader对象。SocketInputStream就是负责解析请求的请求行、和请求头这些信息,然后将这些请求信息填充到HttpRequest中。
为此又专门有两个类,分别是HttpRequestLine和HttpHeader。请求行分为三个部分,1.方法如get或者post等,2.URI,但是URI中可能会含有一个查询字符串3.协议。
HttpHeader则相当于一个key/value对,为了提高效率内部是用字符数组来表示的。通过多次调用readHeader()方法可以将请求头的所有的key/value 对添加到HttpRequest中。其实也就是从socket中取出InputStream进行封装,目的是为了解析请求信息生成HttpRequest,中间的封装就是SocketInputStream。
这里主要涉及到以下几个类
HttpConnector 负责创建一个服务器套接字,套接字会等待传入的Http请求
HttpProcessor 负责生产HttpRequest和HttpResponse
HttpRequest 表示Http的请求对象
HttpRequestFacade http请求对象的门面类
HttpResponse http的响应类
HttpResponseFacade http响应的门面类
HttpRequest类实现了HttpServletRequest,并被作为参数传递给servlet实例的service方法,因此需要设置HttpRequest的成员变量,这些值包括:URI,查询字符串,参数,Cookie和其他一些请求头信息。
SocketInputStream是InputStream的封装,这个类提供了两个重要的方法分别是readRequestLine()和readHeader()方法,readRequestLine方法返回了HTTP请求的第一行的内容,包含了URI,请求方法和HTTP的版本信息这些内容。readHeader方法会返回一个名/值对,所以应该重复的调用这个方法直到把所有的请求头信息读完。这两个方法分别返回HttpRequestLine实例和HttpHeader对象。SocketInputStream就是负责解析请求的请求行、和请求头这些信息,然后将这些请求信息填充到HttpRequest中。
为此又专门有两个类,分别是HttpRequestLine和HttpHeader。请求行分为三个部分,1.方法如get或者post等,2.URI,但是URI中可能会含有一个查询字符串3.协议。
HttpHeader则相当于一个key/value对,为了提高效率内部是用字符数组来表示的。通过多次调用readHeader()方法可以将请求头的所有的key/value 对添加到HttpRequest中。其实也就是从socket中取出InputStream进行封装,目的是为了解析请求信息生成HttpRequest,中间的封装就是SocketInputStream。
相关文章推荐
- java-模拟tomcat服务器
- i-jetty环境搭配与编译
- 实现单Tomcat多Server配置
- 生产环境下的Tomcat配置
- Linux部署Tomcat服务器
- jenkins------结合maven将svn项目自动部署到tomcat下
- 如何搞定tomcat这只喵~
- tomcat在opensuse下开机自启失败的原因分析及解决方法
- jsp项目中更改tomcat的默认index.jsp访问路径的方法
- Tomcat 多端口 多应用
- tomcat 5.0 + apache 2.0 完全安装步骤详解
- Tomcat安全设置 win2003 下tomcat权限限制
- Jsp和PHP共用80端口整合Apache和Tomcat(访问时无需加端口号)
- Tomcat服务器 安全设置第1/3页
- tomcat 6.0.20在一个机器上安装多个服务的方法
- Tomcat 5.5 数据库连接池配置
- Tomcat内存溢出分析及解决方法
- apache tomcat 一个网站多域名的实现方法
- Tomcat无法加载css和js等静态资源文件的解决思路