摘要: 说明:本篇强调分析对象关系,而不是类关系,主要分析为何HttpProcessor还需要依赖上篇中的连接器?为何res/对象交由链接器创建且res/req本身也依赖连接器? org.apache.catalina.connector.http.HttpProcessor 1 package org.a 阅读全文
posted @ 2018-06-26 18:10 10000miles 阅读(319) 评论(0) 推荐(0)
摘要: 背景:本篇的内容主体是Connector连接器,暂不明确其在Tomcat中与其他容器的关系,但可以前述案例为标的物,把Connector理解为运行在多线程下,等待获取客户端socket并交由HttpProcessor进行处理的Object。那么关注点就是在Tomcat中完整的Connector及其所 阅读全文
posted @ 2018-06-25 21:46 10000miles 阅读(232) 评论(1) 推荐(0)
摘要: 代码分析: 类关系: BootStrap主程序负责服务器的启动,控制HttpConnector组件; HttpConnector类负责Http链接和线程管理,控制HttpProcessor组件; HttpProcessor类负责Http协议的解析和res/req的创建,同包下的其他类是为解析req解 阅读全文
posted @ 2018-06-25 15:27 10000miles 阅读(109) 评论(0) 推荐(0)
摘要: 说明:旨在说明Http响应头的诸属性,要述说的内容基于Http协议的完整定义,但是Http协议不做完全的阐释,也不精确说明要讲述的概念是Http协议中那些概念的组成部分及与之关 系。仅仅为实际需要,截取出响应头部分本身,只关于于此。 Refresh: 5; url= http://www.zcmhi 阅读全文
posted @ 2018-06-24 14:54 10000miles 阅读(1005) 评论(0) 推荐(1)
摘要: 说明:摘自网上的资源,关于Http协议,已经读了大半,但是还是很抽象。这里列出协议中的Header属性列表,和实际具体案例进行说明。本篇只关注Http“消息”概念中的Header,不关注Line和Body. 请求头: 上述说明,太多形式化,其实是违反人类的思维直觉的,这是西方人搞的东西,所以下面拿出 阅读全文
posted @ 2018-06-24 14:41 10000miles 阅读(612) 评论(0) 推荐(0)
摘要: 代码结构: 该目录未能显示项目根下的webroot文件夹,此文件夹存放servlet程序员编译的servlet.class文件和静态资源。 BootStrap package sub.startup; import sub.connector.http.HttpConnector; public f 阅读全文
posted @ 2018-06-22 22:20 10000miles 阅读(245) 评论(0) 推荐(0)
摘要: 说明与前提:服务主程序并没有把浏览器传递进来的数据全部解析给request对象的诸属性,仅仅是解析了uri请求路径。不关注具体的解析算法!另外response也没有对应的生命周 期,供主程序控制,比如init方法等初始化response的所有属性。 代码结构: 截图工具不好用,该项目不包含划黑线的类 阅读全文
posted @ 2018-06-21 23:16 10000miles 阅读(176) 评论(0) 推荐(0)
摘要: 声明:资料来自Tomcat剖析一书,该程序是基于java socket的,socket和stream类作为概念背景,现在仅仅是使用其作为基础类,并不关注其本身,关注点在一个服务器的外部功能和体系结构! 代码目录 HttpServer package simpleserver; import java 阅读全文
posted @ 2018-06-21 22:30 10000miles 阅读(305) 评论(0) 推荐(0)
摘要: java是软件发展的产物,其粒度远远超过了汇编、c等,从面向过程到面向对象,粒度增大,软件进入了构建了层次,当然仍然可以使用面向过程的语言那样抽象出编程模型即输入、处理、输出,概念上下文等,了解它的本质很重要。当我们有现成的算法甚至构件工具可以复用的时候,当前的核心关注点更应该是软件体系结构、组件等 阅读全文
posted @ 2018-06-20 15:08 10000miles 阅读(245) 评论(0) 推荐(0)
摘要: 即使是没系统学习过maven的开发者也都知道pom文件,因为我们在这里配置第三方依赖等。maven项目的结构层次暂略过,现假设已生成了maven结构目录,仓库也建立成功,在编写代码之前或之中我们把一些可复用的三方依赖加进来。使用pom.xml文件,该文件是maven对project的定义的标签化,让 阅读全文
posted @ 2018-06-19 18:20 10000miles 阅读(239) 评论(0) 推荐(0)