如果在web開發中,沒了tomcat,請求是怎麼到的後端controller?

時間 2021-05-09 02:27:16

1樓:manlin

確實是新手,如果你看過http協議,你可以簡單基於tcp實現乙個http伺服器,效能絕對比tomcat好,https交給nginx處理就好

2樓:Aetherus

Tomcat幹了什麼事情?(先不管TLS/SSL)

監聽TCP埠(常見的是8080),並接受客戶端建立的TCP連線

根據HTTP協議解析客戶端從上述連線裡發來的資料報,並封裝成物件(即HttpServletRequest物件),同時準備HttpServletResponse物件。

根據配置(web.xml)找到負責處理這個請求的呼叫鏈(一系列的 Filter -> 乙個 Servlet)

呼叫上述呼叫鏈(呼叫過程中會依據HTTP協議把響應從上述TCP連線裡寫回客戶端)

斷開TCP連線(除非客戶端用的是HTTP/1.1協議並設了Keep-Alive: true)

其中的第1步、第2步的前半和第5步是關鍵,所有語言的所有HTTP伺服器都是這麼玩的。至於第2步的後半段,不同語言/框架/伺服器封裝出來的東西當然就是不一樣的了。

從上述步驟可以看出,如果沒有Tomcat,但我們還需要Servlet,則只需用另乙個和Tomcat機制類似的也支援Servlet API的東西即可,比如Jetty。如果你連這都不想用,你也可以自基於TCP socket寫乙個HTTP伺服器出來(通常用於驗證某些特性,寫乙個簡化版的HTTP伺服器,比如讓GET請求可以帶body啦,去掉併發機制啦,按需要只實現部分HTTP協議啦)。

如果在群星stellaris中增加一種修仙文明會怎樣

題主這不就是想空手套國策?嗯?國策 飛公升者 滿足 一定程度上偏向威權主義,唯心主義和軍國主義 使用君主制 沒有國策啟示錄倖存者,生命搖籃,共同進化,以及機械師。效果 初始星球替換為虛境星球,自帶少量暗物質和澤洛產出。非虛境星球初始宜居性為50。禁用基因和合成飛公升路線。自帶靈能理論科技。奢侈品製造...

如果在 ingress 中作出正好平分地球面積或人口的 field,ingress 的演算法將哪邊視作內部?

Ingress曾經出現過兩次 三個PO在一條完美的直線上,當作成Field時產生的mu等於覆蓋了全球。這個bug不知道NIA修復了沒有。那兩次NIA的做法是 修改其中乙個PO的位置。 在 ingress 中,八級塔的 link 距離上限是 655.36km 再配合四個 VR 級的 link amp,...

如果在現實中,lol的船長和dota的船長pk,誰更厲害?

宇宙無敵超級大帥 主要吧,要是不改動對打的話,刀塔英雄的施法和攻擊距離都比聯盟遠,畢竟地圖大小不一樣,所以可能昆卡可能會吊大海洋之災,因為後者 夠不著 船長出了天堂之戟,大暈錘,羊刀,跳刀,紫苑,大隱刀。蒲朗克看到乙個做海軍將軍打扮的人瞬間出現在自己面前。然後就被控到死了。 白公子 其他的都不說,單...