Tomcat乾貨(訪問)

假設來自客戶的請求爲:
http://localhost:8080/wsota/wsota_index.jsp html

  1. 請求被髮送到本機端口8080,被在那裏偵聽的Coyote HTTP/1.1 Connector得到
  2. Connector把該請求交給它所在的Service的Engine來處理,並等待來自Engine的迴應
  3. Engine得到請求localhost/wsota/wsota_index.jsp,匹配它所擁有的全部虛擬主機Host
  4. Engine匹配到名爲localhost的Host(即便匹配不到也把請求交給該Host處理,由於該Host被定義爲該Engine的默認主機)
  5. localhost Host得到請求/wsota/wsota_index.jsp,匹配它所擁有的全部Context
  6. Host匹配到路徑爲/wsota的Context(若是匹配不到就把該請求交給路徑名爲」「的Context去處理)
  7. path=」/wsota」的Context得到請求/wsota_index.jsp,在它的mapping table中尋找對應的servlet
  8. Context匹配到URL PATTERN爲*.jsp的servlet,對應於JspServlet類
  9. 構造HttpServletRequest對象和HttpServletResponse對象,做爲參數調用JspServlet的doGet或doPost方法
  10. Context把執行完了以後的HttpServletResponse對象返回給Host
  11. Host把HttpServletResponse對象返回給Engine
  12. Engine把HttpServletResponse對象返回給Connector
  13. Connector把HttpServletResponse對象返回給客戶browse

Tomcat乾貨(訪問)

Web客戶1直接訪問Tomcat服務器上的JSP組件,他訪問的 URL爲http://localhost:8080 /index.jsp。瀏覽器

Web客戶2經過HTTP服務器訪問Tomcat服務器上的JSP組件。假定HTTP服務器使用的HTTP端口爲默認的80端口,那麼Web客戶2訪問的URL爲http://localhost:80/index.jsp 或者 http://localhost/index.jsp服務器

這個就是AJP協議:定向包協議。 由於性能緣由,使用二進制格式來傳輸可讀性文本。 WEB服務器經過TCP鏈接和SERVLET容器鏈接。app

第一個鏈接器監聽8080端口,負責創建HTTP鏈接。在經過瀏覽器訪問Tomcat服務器的Web應用時,使用的就是這個鏈接器。  jsp

第二個鏈接器監聽8009端口,負責和其餘的HTTP服務器創建鏈接。在把Tomcat與其餘HTTP服務器集成時,就須要用到這個鏈接器。ide

<Connector port="8080" protocol="HTTP/1.1"  第一個
           connectionTimeout="20000"
           redirectPort="8443" />

<!-- Define an AJP 1.3 Connector on port 8009 --> 第二個
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    訪問方式:
    Java HTTP Connector: /docs/config/http.html
     Java AJP  Connector: /docs/config/ajp.html
     APR (HTTP/AJP) Connector: /docs/apr.html
     Define a non-SSL/TLS HTTP/1.1 Connector on port 8080

鏈接:http://blog.chinaunix.net/uid-20662363-id-3012760.html性能

相關文章
相關標籤/搜索