日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tomcat处理一个HTTP请求的过程

發布時間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tomcat处理一个HTTP请求的过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、Tomcat的組成

(1)Server
服務器元素代表整個catalina servlet容器。是單例模式。

?

(2)Service
Service是這樣一個集合:它由一個或者多個Connector組成,以及一個Engine,負責處理所有Connector所獲得的客戶請求。

?

(3)Connector

一個Connector將在某個指定端口上偵聽客戶請求,并將獲得的請求交給Engine來處理,從Engine處獲得回應并返回客戶。TOMCAT有兩個典型的Connector,一個直接偵聽來自browser的http請求,一個偵聽來自其它WebServer的請求

Coyote Http/1.1 Connector 在端口8080處偵聽來自客戶browser的http請求
Coyote JK2 Connector 在端口8009處偵聽來自其它WebServer(Apache)的servlet/jsp代理請求

?

(4) Engine
  Engine下可以配置多個虛擬主機Virtual Host,每個虛擬主機都有一個域名,當Engine獲得一個請求時,它把該請求匹配到某個Host上,然后把該請求交給該Host來處理,Engine有一個默認虛擬主機,當請求無法匹配到任何一個Host上的時候,將交給該默認Host來處理

?

(5)Host
  代表一個Virtual Host,虛擬主機,每個虛擬主機和某個網絡域名Domain Name相匹配,每個虛擬主機下都可以部署(deploy)一個或者多個Web App,每個Web App對應于一個Context,有一個Context path,當Host獲得一個請求時,將把該請求匹配到某個Context上,然后把該請求交給該Context來處理,匹配的方法是“最長匹配”,所以一個path==""的Context將成為該Host的默認Context,所有無法和其它Context的路徑名匹配的請求都將最終和該默認Context匹配

?

(6)Context
一個Context對應于一個Web Application,一個Web Application由一個或者多個Servlet組成,Context在創建的時候將根據配置文件$CATALINA_HOME/conf/web.xml和$WEBAPP_HOME/WEB-INF/web.xml載入Servlet類,當Context獲得請求時,將在自己的映射表(mapping table)中尋找相匹配的Servlet類,如果找到,則執行該類,獲得請求的回應,并返回。

?

二、Tomcat的http請求處理

(1)browser 請求url被發送到本機端口默認為80,被在那里偵聽的Coyote HTTP/1.1 Connector獲得?

(2) Connector把該請求交給它所在的Service的Engine來處理,并等待來自Engine的回應?
(3) Engine獲得請求url,匹配它所擁有的所有虛擬主機Host?
(4) Engine匹配到名為severName的Host(即使匹配不到也把請求交給localhost Host處理,因為該Host被定義為該Engine的默認主機)?
(5) Host獲得請求url,匹配它所擁有的所有Context?
(6) Host匹配到路徑前綴相同的Context(如果匹配不到就把該請求交給路徑名為”“的Context去處理)?
(7)Context獲得請求url,在它的mapping table中尋找對應的servlet?
(8) Context匹配到URL PATTERN為*.jsp的servlet,對應于JspServlet類?
(9) 構造HttpServletRequest對象和HttpServletResponse對象,作為參數調用Servlet的doGet或doPost方法?
(10)Context把執行完了之后的HttpServletResponse對象返回給Host?
(11)Host把HttpServletResponse對象返回給Engine?
(12)Engine把HttpServletResponse對象返回給Connector?
(13)Connector把HttpServletResponse對象返回給客戶browser

?

三、tomcat處理一個請求的詳細流程

  protocolHandler負責生成endpoint和Http11ConnectionHandler,endpoint的acceptor線程負責處理連接請求,收到連接請求后交給worker線程處理。work線程調用Http11ConnectionHandler,Http11ConnectionHandler維護一個Http11Processor池,在構造Http11Processor時將生成org.apache.coyote.Request和org.apache.coyote.Response對象。

  Http11Processor使用InternalInputBuffer類來解析http協議,并將解析后的數據(請求頭,分割行等)封裝到org.apache.coyote.Request和org.apache.coyote.Response對象中,之后將此兩對象傳給CoyoteAdapter.service(request, response)在該方法內部實現了org.apache.coyote.Request --> org.apache.catalina.connector.Request,

org.apache.coyote.Response --> org.apache.catalina.connector.Response的轉換。

  接下來請求進入pipeline,pipeline中value的執行(調用value的invoke方法)順序如下:?
StandardEngineValve --> StandardHostValve --> StandardContextValve --> StandardWrapperValve --> ApplicationFilterChain.doFilter --> Servlet(HttpServlet).service?
(由StandardWrapper創建的單實例——多線程共用),invoke方法的參數即為org.apache.catalina.connector.Request/Response。?
  如果是jsp則繼續-->JspServletWrapper.service-->Compiler(如果沒有被編譯的話) --> 裝載具體編譯后的servlet class file-->交給具體servlet的service方法 --> 通過out.write寫入html頁面,事實上這個out是response.getWriter,所以也就將結果寫入了response。?

總結

以上是生活随笔為你收集整理的Tomcat处理一个HTTP请求的过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩三级精品 | 中国 免费 av | 粉嫩av一区二区三区免费观看 | 成人免费视频一区二区三区 | 超碰人人在线观看 | 成人在线国产 | 免费看av的网址 | 欧美黄色大片网站 | 中文字幕第8页 | 亚洲一区二区影院 | 老妇女性较大毛片 | 久久不射网 | 午夜成年视频 | 空姐吹箫视频大全 | 中文字幕久久熟女蜜桃 | www.天天操 | 你懂的在线观看视频 | 在线观看黄色小视频 | 国产美女黄色片 | 一区二区日本视频 | 网友自拍一区 | 黄91在线观看 | 一二三区在线播放 | 无码人妻久久一区二区三区不卡 | 成人91免费| 风韵少妇性饥渴推油按摩视频 | 色爽av| 女性裸体无遮挡胸 | 日本久久精品视频 | 亚洲午夜精品在线观看 | 一级中文片 | 黄色网址在线免费看 | 粗大黑人巨茎大战欧美成人 | 国产成人无码一二三区视频 | 国模一区二区三区 | 色91在线 | 日本欧美日韩 | www.99热| 日韩高清三区 | 欧美14sex性hd摘花 | 放荡的美妇在线播放 | 国产精品一二三区 | 成人网色| 人妻aⅴ无码一区二区三区 阿v免费视频 | 欧美性受xxxxxx黑人xyx性爽 | 日本不卡高字幕在线2019 | 狂野欧美性猛交xxxx777 | 成年人午夜影院 | 男人的天堂久久久 | 自拍偷拍第一页 | 国产全肉乱妇杂乱视频 | 欧美一区欧美二区 | 一区二区三区免费高清视频 | 久久亚洲av午夜福利精品一区 | 麻豆av一区二区三区 | 黄色三级网站 | 香蕉在线视频播放 | 国产精品4p | 亚洲精品88 | 国产一区麻豆 | 日韩毛片高清在线播放 | 靠逼在线观看 | 99热视| 91免费观看视频 | 欧洲熟妇的性久久久久久 | 成人黄色网页 | 无码人妻aⅴ一区二区三区有奶水 | 婷婷国产成人精品视频 | 风韵少妇性饥渴推油按摩视频 | 日韩不卡视频在线 | 日本激情影院 | 六月综合| 欧美网站免费 | 久操热线| 色网站在线免费观看 | 污漫网站 | 国产综合免费视频 | 欧美第一页草草影院 | 亚洲性在线 | 亚洲国产成人精品久久久 | 99久久久久成人国产免费 | 日本五十肥熟交尾 | 韩国女同性做爰三级 | 国产呦系列 | 影音先锋精品 | 91捆绑91紧缚调教91 | 亚洲在线中文字幕 | 中文字幕一区二区在线老色批影视 | 天天干天天插天天射 | www,jizz,com| 玖玖爱这里只有精品 | 亚洲免费网 | 欧美精品一区二区性色a+v | 青青青免费在线 | youjizz自拍 | 日本人体视频 | 一本一道久久a久久精品综合 | 蜜臀av在线观看 | 久久国产乱子伦免费精品 |