3、Webserver如何處理動態檔案
1、webserver處理動態檔案的方式
模組化即把處理動態檔案的引擎當成模組整合進webserver中
CGI通訊協議
2、實現方式
2.1、模組化
a、過程描述:
客戶端發起動態檔案請求
-
webserver接收到請求,根據其配置檔案的內容,交由至對應的動態模組處理
b、要點:
把動態處理模組當成是webserver的一個子模組。
2.2、CGI
通用閘道器介面(Common Gateway Interface/CGI)是一種重要的網際網路技術,可以讓一個客戶端,從網頁瀏覽器向執行在網路伺服器上的程式請求資料。CGI描述了伺服器和請求處理程式之間傳輸資料的一種標準。
a、過程描述:
客戶端發起動態檔案請求
webserver接收到請求,交由至對應的CGI處理
CGI建立子程式,由其處理該請求內容,並等待結果返回。
b、要點:
CGI這種每次呼叫都需要建立子程式的方式。一來是建立子程式的開銷昂貴,二來是經不起大併發量。
2.3、fastCGI
它是 CGI 的增強版本,採用master-worker的方式,改進了CGI中(fork-execute-exit)的詬病,用於減少 Server 與 CGI 應用之間的互動開銷,從而使 Server 可以同時處理更多的請求。
a、過程描述:
fastCgi啟動,根據其配置檔案,建立一個master和n個worker程式,開始監聽並等待請求
客戶端發起動態檔案請求
webserver接收到請求,根據配置檔案,透過socker轉發至對應的fastcgi請求,並等待結果返回
b、要點:
透過socket通訊方式,連線了 webserver和fastcgi。
其次,fastcgi先建立工作程式的方式,避免了CGI(fork-execute-exit)的詬病。並根據採用master和worker的方式,master 程式只有一個,負責監聽埠,接收來自 Web Server 的請求,而 worker 程式則一般有多個(具體數量根據實際需要配置),每個程式內部都嵌入了一個 PHP 直譯器,是 PHP 程式碼真正執行的地方
3、協議實現
3.1、php-cgi
php-cgi是php的直譯器,是cgi協議的實現
3.2、php-fpm
php-fpm是管理和實現fastCGI的管理器
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2318/viewspace-2822822/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mac 上啟動web檔案分享 區域網檔案分享 WebServerMacWebServer
- Python3中檔案處理Python
- Python如何處理檔案的?Python
- Python 如何處理大檔案Python
- 前端如何處理xml配置檔案?前端XML
- 處理 Linux 檔案的 3 個技巧Linux
- django-驗證碼/靜態檔案處理Django
- 如何動態載入js檔案JS
- [R]檔案處理
- bat處理檔案BAT
- bat檔案處理BAT
- javascript如何動態載入js檔案JavaScriptJS
- .NET Core 如何上傳檔案及處理大檔案上傳
- Linux學習之檔案處理命令(二)目錄處理命令 && 檔案處理命令Linux
- 3.python檔案操作及異常處理Python
- 證券行業檔案自動化處理行業
- ASP.NET Core靜態檔案處理原始碼探究ASP.NET原始碼
- Pr 入門教程如何處理圖片檔案?
- 如何處理大體積 XLSX/CSV/TXT 檔案?
- jQuery如何處理xml檔案程式碼例項jQueryXML
- Javascript如何訪問和處理系統檔案JavaScript
- window 批處理檔案
- python處理檔案Python
- Go xml檔案處理GoXML
- python檔案處理Python
- python 檔案處理Python
- Python 檔案處理Python
- JAVA ZIP 處理檔案Java
- 批處理檔案命令
- 檔案處理函式函式
- Windows批處理檔案Windows
- bat批處理檔案BAT
- MySQL 之動態字串處理MySql字串
- 使用Django來處理對於靜態檔案的請求Django
- 如何使用find和xargs查詢和處理檔案
- 如何使用vi處理GB級別的大檔案
- 影片美顏SDK動態處理技術與靜態處理技術
- java 檔案處理 工具類Java