詳解Tomcat Server處理http請求過程

      網友投稿 884 2022-05-30

      假設來自客戶的請求為:

      http://localhost:8080/wsota/wsota_index.jsp

      服務端響應過程如下:

      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對象返回給客戶browser

      詳解Tomcat Server處理http請求過程

      元素

      元素由Connector接口定義.元素代表與客戶程序實際交互的給件,它負責接收客戶請求,以及向客戶返回響應結果.?一個“Connector”(連接器)代表一個請求被接收和應答所需要的端點。每個連接器通過相關的“Container”(容器)處理請求。

      元素

      它由Host接口定義.一個Engine元素可以包含多個元素.每個的元素定義了一個虛擬主機.它包含了一個或多個Web應用.

      注:?name是虛擬主機的名字,appBase是虛擬主機指向的目錄,Tomcat啟動時,會自動加載appBase下的應用。?unpackWARs表示是否自動解壓縮appBase下已打成WAR包的應用,autoDeploy表示在服務器運行的時候,將一個應用放入?appBase下,是否自動部署。

      元素

      ?

      它由Context接口定義.是使用最頻繁的元素.每個元素代表了運行在虛擬主機上的單個Web應用.一個可以包含多個元素.每個web應用有唯一的一個相對應的Context代表web應用自身.

      path?:?該Context的路徑名是"",故該Context是該Host的默認Context

      docBase?:?該Context的根目錄是webapps/mycontext/

      reloadable:如果這個屬性設為true,?Tomcat服務器在運行狀態下會監視在WEB-INF/classes和Web-INF/lib目錄CLASS文件的改運.如果監視到有class文件被更新,服務器自重新加載Web應用

      useNaming:指定是否支持JNDI,默認值為了true

      cookies指定是否通過Cookies來支持Session,默認值為true

      元素

      ?? ??? ??

      該元素由org.apache.catalina.Service接口定義,它包含一個元素,以及一個或多個,這些Connector元素共享用同一個Engine元素.

      redirectPort?指定服務器正在處理http請求時收到了一個SSL傳輸請求后重定向的端口號。

      ???

      第一個處理所有直接由Tomcat服務器接收的web客戶請求.

      第二個處理所有由Apahce服務器轉發過來的Web客戶請求?.

      注:Server元素下可以有多個Service,端口就是在Service元素下配置的。

      其中protocal制定了該端口偵聽的協議類型,HTTP/1.1表示偵聽的是客戶的HTTP請求,即我們通過瀏覽器訪問需要輸入的端口,當端口號是80的時候,可以不用在瀏覽器地址欄輸入端口號,這就是我們訪問很多網站不需要指定端口的原因。有時候protocal沒有指定,這時候默認的是HTTP/1.1。注意這個端口必須是閑置的。

      Service元素下必須有一個Engine元素,Engine有一個名稱,和一個默認的虛擬主機名。

      附:

      Tomcat?是一款優秀的JSP/Servlet容器,最初由SUN開發,后來被貢獻給了Apache社區。

      HTTP Tomcat 容器

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【愚公系列】2022年04月 微信小程序-項目篇(公交查詢)-02周邊站點-獲取位置和城市信息
      下一篇:倍福Ethercat學習日記
      相關文章
      久久精品国产亚洲综合色| 国产亚洲精品美女久久久久| 亚洲国产aⅴ综合网| 亚洲高清中文字幕免费| 亚洲一区在线免费观看| 亚洲人成高清在线播放| 亚洲视频在线视频| 亚洲一区二区电影| 久久精品国产亚洲AV香蕉| 亚洲黑人嫩小videos| 久久久久亚洲av无码专区喷水| 亚洲AV电影院在线观看| 久久亚洲精品中文字幕三区| 亚洲韩国精品无码一区二区三区 | 亚洲美女色在线欧洲美女| 久久精品国产亚洲香蕉| 亚洲av日韩综合一区在线观看| 亚洲一区二区影院| 久久亚洲精品无码aⅴ大香| 亚洲国产精品专区| 亚洲国产激情在线一区| 亚洲日韩一区精品射精| 亚洲成aⅴ人片久青草影院按摩| 亚洲国产av玩弄放荡人妇| gogo全球高清大胆亚洲| 国产成人亚洲综合| 亚洲成AV人片在WWW色猫咪 | 亚洲精品天堂成人片AV在线播放| 久久亚洲精品11p| 亚洲国产精品日韩| 亚洲女久久久噜噜噜熟女| 亚洲AV无码欧洲AV无码网站| 精品亚洲麻豆1区2区3区| 亚洲大香人伊一本线| 一本色道久久88亚洲精品综合| 亚洲大尺度无码无码专线一区| vvvv99日韩精品亚洲| 中国亚洲女人69内射少妇| 亚洲成色999久久网站| 亚洲一级毛片视频| 国产精品久久久久久亚洲影视|