相信很多的Web安全初學者和我一樣,對中間件和服務器的認識不夠深刻,對兩者的概念可能會有所混淆。
正好今天在學習的時候突然想到了這個問題,粗略百度了一下,似乎網上對這個問題的解釋不多,那么就由我來為大家解釋一下中間件和服務器的關系。
一、服務器的定義:
服務器指的是一個管理資源並為用戶提供服務的計算機軟件,通常分為文件服務器、數據庫服務器和應用程序服務器。運行以上軟件的計算機或計算機系統也被稱為服務器。
二、中間件
中間件是服務器上負責解析http請求的一組應用程序,負責接收並解析http請求數據包,在服務器上找到數據包所請求的文件后,將其返回給客戶端,如果http數據包所請求的是一個動態腳本文件,如php等,中間件就要靠CGI與腳本語言解析軟件進行交互,處理好動態腳本文件后,再將處理后的文件其返回給瀏覽器。
說白了,中間件就是服務器上web端口(通常為80端口)的一個翻譯官,負責告訴服務器用戶要請求哪些文件,如果用戶請求的是一個靜態的html頁面,就直接在服務器上找到對應文件並將其交給用戶瀏覽器,如果用戶請求的是一個動態頁面如php,asp等,中間件在找到該文件后,將其交給對應的腳本語言解析程序,腳本語言解析程序將文件解析成html后,再把解析過的文件發送給瀏覽器。
所以,瀏覽器本身並不能渲染解析動態腳本文件,以php為例,瀏覽器解析的.php文件,實際上是經服務器php程序解析后的html文件。
再者,如果服務器上沒有安裝中間件,那么服務器就不能理解用戶發來的http數據包是什么意思,當然也就無法對http請求包進行正確的響應。
三、Web服務器
web服務器就是安裝了中間件的服務器。
