<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 53, 文章 - 0, 評論 - 3, 引用 - 0
    數據加載中……

    Tomcat Source Code Reading

    0. I am reading the source code of Tomcat 6.0.26. To pay off the effort,
    I documents some notes for record. Thanks for the articles about Tomcat
    source code, especially the book <<How Tomcat works>>.

    1. They are two concepts about server, one is called Server, which
    is for managing the Tomcat (start and stop); another is called Connector,
    which is the server to serve the application request. they are on the different
    ports. The server.xml clearly show the difference.

    <Server port="8005" shutdown="SHUTDOWN">
      <Service name="Catalina">
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    although the server is the top level element, logically it should not be.
    Actually in code, Bootstrap starts the service first, which
    in turn start the Server and server's services.

    2. My focus in on Connector part. I care how the request is services by the
    Tomcat. Here are some key classes.

    Connector --> ProtocolHandler (HttpProtocol
                            and AjpProtocol)                       --> JIoEndPoint
                                                                               --> Handler(Http11ConnectionHandler
                                                                               and AjpConnectionHandler)
                                                      
                                                      
    3. Connector is most obervious class, but the entry point is not here.
    The sequence is like this.

    Connector.Acceptor.run()
    --> JioEndPoint.processSocke(Socket socket)
        -->SockeProcess.run()
            -->Http11ConnectorHandler.process(Socket socket)
                -->Http11Processor.process(Socket socket)
                    -->CoyoteAdapter.service(Request req, Response res)       

    The core logic is in method Http11Processor.process(Socket socket)                                                  

    CoyoteAdapter.service(Request req, Response res) bridges between Connector module and Container module.

    Any comments are welcome. I may continue the source code reading and dig deeper into it if time permit.


    posted on 2010-03-30 17:11 InPractice 閱讀(617) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产成人精品免费视频软件| 亚洲男女内射在线播放| 国产AV无码专区亚洲A∨毛片| 亚洲精品中文字幕乱码三区| 免费看一级一级人妻片 | 无码专区—VA亚洲V天堂| 国产精品成人69XXX免费视频| 亚洲一区二区三区免费| 有色视频在线观看免费高清在线直播 | 两个人看的www视频免费完整版| 亚洲性久久久影院| 久久久久免费视频| 暖暖免费高清日本一区二区三区| 亚洲午夜无码久久| 国产美女精品视频免费观看| 亚洲精品无码专区在线| 四虎免费影院4hu永久免费| 情人伊人久久综合亚洲| 久久精品国产这里是免费| 丁香亚洲综合五月天婷婷| 亚洲天堂一区在线| 大地资源二在线观看免费高清| 亚洲色无码专区一区| 亚洲成A人片在线观看无码3D| 久香草视频在线观看免费| 亚洲国产另类久久久精品| 最近中文字幕免费2019| 亚洲精品久久无码av片俺去也 | 亚洲人成未满十八禁网站| 成人免费视频一区| 国产成人无码免费看片软件| 亚洲va久久久噜噜噜久久狠狠| 国产精品成人免费福利| 亚洲av无码专区首页| 国产精品免费观看久久| 粉色视频免费入口| 亚洲三级电影网址| 在线免费一区二区| a级毛片高清免费视频就| 亚洲人成影院午夜网站| 99久久国产热无码精品免费|