原创 Tomcat 對 NIO 和 HTTP 協議的實現

本文描述了 Tomcat 中 NIO 處理和 HTTP 協議解析過程。關於 NIO 模型,已在 Tomcat 架構概述 一文中描述,並且也提供了一份 Reactor 模型的實現源碼,這裏着重描述 Tomcat 內部的封裝實現。 協議是什麼?

原创 Tomcat 架構概述

Tomcat 是一個 Web 應用服務器,它是對 HTTP 和 Servlet 規範的實現,簡單來說它做了這幾件事:處理 HTTP 協議、執行 Servlet 和處理網絡 I/O。這裏以 6.0.53 版本爲例(實現了 HTTP/1.1、S

原创 Reactor 模型的實現

NIO 常用的編程模型是 Reactor,在 Doug Lea 的 Scalable IO in Java 的 PPT 中對其進行了介紹,文末有福利 :) ,Reactor 的特點是 I/O 多路複用和事件驅動,基本處理過程爲: 處理程序

原创 關於 IO 和 NIO 的思考

I/O 的實際操作由內核執行,其中一個重要手段是緩衝區。簡單來說 I/O 可分爲兩類:面向磁盤和麪向網絡,Java 也是針對這兩者來抽象設計 API,相關的類主要在 java.io 和 java.nio 包中,簡稱爲 BIO 和 NIO。

原创 Tomcat 啓動初始化和停止

Tomcat 通過 server.xml 配置文件裝配一系列組件,並且爲組件設計生命週期接口,在容器啓停時,協調控制組件的啓動、初始化和停止。容器通常使用腳本啓動,腳本主要是檢查 Java 環境、設置 JVM 參數,調用 Bootstrap