web這塊東西真的太多了,框架N多種,還有什麼web容器,web伺服器,這麼多名詞,對於新手來說簡直就是惡夢啊。 。 。
花了一天時間,稍微清楚了點,
1,其實這些所謂的框架無非就是一些封裝,把介面提供給我們使用。
2,web容器麼應該算是運作環境或編譯器?用來產生html檔的。
3,web伺服器這個概念太廣了,感覺說不清楚。 。 。
4,言歸正傳,Nginx應該屬於框架?還是說,它本身就是一個應用程式?還有,在Nginx上面進行開發是用C嗎? (注意,不是說Nginx本身是由什麼語言開發的),而是Nginx上面跑的程式是由什麼語言開發的?只能用C嗎?
5,Nginx開發到底是什麼意思?如果它本身就是一個應用程序,在應用程式上面再開發一個應用程式?
以上5點不知道有哪幾點是對的,可能全錯。 。 。望各位大神解救一下我這個想學web的菜鳥
我非常同意你的看法
web容器,就是一個應用程式,利用應用層的http傳輸各種格式的資料,例如html,瀏覽器會根據資料類型分別處理
web伺服器概念不大,可以通俗理解為就是一個赤裸裸的http服務,只不過這個http服務傳輸的web相關的數據
Nginx位於網路的最頂層,屬於一個應用。 C開發,它支援模組的二次開發。
Nginx開發應該指的是插件的開發,nginx也是有http模組的,但是這個http模組是默認通用的模組,如果你需要定制自己的http的模組你就需要用C二次開發。我們有個需求就是驗證請求的合法性,我們的做法就是每個http請求的header裡都會有個加密串,然後透過我們自己寫的nginx的http模組進行反解,如果不對就block掉,這樣無效請求就不會進到我們的業務伺服器。還有一個情況也是最常見的就是用Lua寫nginx拓展,例如發布新版本做灰度發布的時候,我們想讓少部分用戶流量導入新伺服器,測試沒問題的時候再導入所有流量,這個就可以用lua腳本來實現,寫一個nginx組件實現你的個性化需求,當然nginx框架本身提供一些底層的api,所以在寫插件的時候你只需要關注你的邏輯而不需要關注底層實現.
nginx開發就像你給一個類別寫一個類別方法一樣
框架是把開發中常用的程式碼和模式提取出來,不需要程式設計師自己再手動造了
web容器就是虛擬機器
web伺服器就是處理網路請求回傳各種文字的軟體進程,例如最常見的就是碰到http請求就回html文字
nginx是代理伺服器,基於各種語言實現的web伺服器進程沒有nginx也能照樣處理網絡請求以及吐回相應的文本,而nginx的作用簡單說就是把各種網絡請求篩選後扔給這些相應的web伺服器進程,再把這些web伺服器吐回的文本作為它處理網絡請求吐回去的文本,嗯nginx也是web伺服器進程
上面說了,只要是能處理網絡socket請求的進程,nginx都可以溝通,所以nginx與什麼語言開發沒關係,除非你要對nginx本身功能拓展,那麼用c與lua
是一個類似Apache 的伺服器,後端程式語言依賴伺服器來搭建運作環境,可以理解為一個服務,而不是程式