成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

CGI、PHP-CGI、FastCGI

gghyoo / 2764人閱讀

摘要:二工作流程進(jìn)程管理器自身初始化,啟動(dòng)多個(gè)解釋器進(jìn)程,并等待來(lái)自的連接。服務(wù)器與進(jìn)程管理器進(jìn)行通信,通過(guò)協(xié)議發(fā)送環(huán)境變量和標(biāo)準(zhǔn)輸入數(shù)據(jù)給解釋器進(jìn)程。解釋器進(jìn)程完成處理后將標(biāo)準(zhǔn)輸出和錯(cuò)誤信息從同一連接返回。

CGI

一. CGI是什么
CGI,全稱是Common Gateway Interface,翻譯過(guò)來(lái)就是“通用網(wǎng)關(guān)接口”,定義了一個(gè)接口標(biāo)準(zhǔn),描述了數(shù)據(jù)怎么在服務(wù)器和外部應(yīng)用程序之間怎么傳遞。

二. CGI的來(lái)歷
在很早之前,互聯(lián)網(wǎng)只有些靜態(tài)內(nèi)容,瀏覽器發(fā)送資源請(qǐng)求,服務(wù)器接受請(qǐng)求并返回服務(wù)器上的靜態(tài)文件即可。

隨著互聯(lián)網(wǎng)的發(fā)展,動(dòng)態(tài)內(nèi)容產(chǎn)生了,這些動(dòng)態(tài)內(nèi)容涉及到了數(shù)據(jù)庫(kù),能夠操作數(shù)據(jù)庫(kù)的動(dòng)態(tài)語(yǔ)言將數(shù)據(jù)處理后返回給WebServer,WebServer再返回給瀏覽器。

由于有很多種動(dòng)態(tài)語(yǔ)言和很多種瀏覽器,它們之間面臨著不兼容的情況,這時(shí)候就需要在它們之間設(shè)立一個(gè)接口標(biāo)準(zhǔn),這就是CGI。瀏覽器發(fā)起請(qǐng)求,WebServer會(huì)將請(qǐng)求發(fā)給對(duì)應(yīng)的CGI程序,CGI再調(diào)用外部程序來(lái)處理請(qǐng)求并返回結(jié)果。

三. CGI的作用
WebServer是通過(guò)如下方式來(lái)CGI程序進(jìn)行通信的,所以只要支持標(biāo)準(zhǔn)輸入輸出和環(huán)境變量的語(yǔ)言,都能用來(lái)編寫(xiě)CGI程序。

環(huán)境變量(請(qǐng)求類型,請(qǐng)求IP..)
標(biāo)準(zhǔn)輸入(請(qǐng)求主體)
標(biāo)準(zhǔn)輸出(請(qǐng)求響應(yīng))

CGI描述了如何在環(huán)境變量中傳遞請(qǐng)求的基本信息,如何通過(guò)標(biāo)準(zhǔn)輸入傳遞請(qǐng)求體,以及如何通過(guò)標(biāo)準(zhǔn)輸出來(lái)傳遞輸出。這就使編程語(yǔ)言可以很容易得使用環(huán)境變量、標(biāo)準(zhǔn)輸入輸出

四. CGI的缺點(diǎn)
WebServer在接收到請(qǐng)求時(shí),會(huì)先f(wàn)ork出CGI進(jìn)程,然后處理請(qǐng)求,處理完后結(jié)束這個(gè)進(jìn)程,這就是 fork-and-execute 模式。所以用 CGI 方式的服務(wù)器有多少連接請(qǐng)求就會(huì)有多少 CGI 進(jìn)程,每個(gè)進(jìn)程都會(huì)加載解析PHP配置,初始化執(zhí)行環(huán)境,那么當(dāng)高并發(fā)請(qǐng)求時(shí),會(huì)大量擠占系統(tǒng)的資源如內(nèi)存,CPU 時(shí)間等,造成效能低下。

PHP-CGI

PHP-CGI是php的CGI程序,不進(jìn)行進(jìn)程管理

FastCGI

一. FastCGI的簡(jiǎn)介
FastCGI是Web服務(wù)器和處理程序之間通信的一種協(xié)議, 是CGI的一種改進(jìn)方案,F(xiàn)astCGI像是一個(gè)常駐(long-lived)型的CGI, 它可以一直執(zhí)行,在請(qǐng)求到達(dá)時(shí)不會(huì)花費(fèi)時(shí)間去fork一個(gè)進(jìn)程來(lái)處理(這是CGI最為人詬病的fork-and-execute模式)。 正是因?yàn)樗皇且粋€(gè)通信協(xié)議,它還支持分布式的運(yùn)算,所以 FastCGI 程序可以在網(wǎng)站服務(wù)器以外的主機(jī)上執(zhí)行,并且可以接受來(lái)自其它網(wǎng)站服務(wù)器的請(qǐng)求。

FastCGI 是與語(yǔ)言無(wú)關(guān)的、可伸縮架構(gòu)的 CGI 開(kāi)放擴(kuò)展,將 CGI 解釋器進(jìn)程保持在內(nèi)存中,以此獲得較高的性能。 CGI 程序反復(fù)加載是 CGI 性能低下的主要原因,如果 CGI 程序保持在內(nèi)存中并接受 FastCGI 進(jìn)程管理器調(diào)度, 則可以提供良好的性能、伸縮性、Fail-Over 特性等。

二. FastCGI工作流程

FastCGI 進(jìn)程管理器自身初始化,啟動(dòng)多個(gè) CGI 解釋器進(jìn)程,并等待來(lái)自 Web Server 的連接。

Web 服務(wù)器與 FastCGI 進(jìn)程管理器進(jìn)行 Socket 通信,通過(guò) FastCGI 協(xié)議發(fā)送 CGI 環(huán)境變量和標(biāo)準(zhǔn)輸入數(shù)據(jù)給 CGI 解釋器進(jìn)程。

CGI 解釋器進(jìn)程完成處理后將標(biāo)準(zhǔn)輸出和錯(cuò)誤信息從同一連接返回 Web Server。

CGI 解釋器進(jìn)程接著等待并處理來(lái)自 Web Server 的下一個(gè)連接。

FastCGI 與傳統(tǒng) CGI 模式的區(qū)別之一則是 Web 服務(wù)器不是直接執(zhí)行 CGI 程序了,而是通過(guò) Socket 與 FastCGI 響應(yīng)器(FastCGI 進(jìn)程管理器)進(jìn)行交互,也正是由于 FastCGI 進(jìn)程管理器是基于 Socket 通信的,所以也是分布式的,Web 服務(wù)器可以和 CGI 響應(yīng)器服務(wù)器分開(kāi)部署。Web 服務(wù)器需要將數(shù)據(jù) CGI/1.1 的規(guī)范封裝在遵循 FastCGI 協(xié)議包中發(fā)送給 FastCGI 響應(yīng)器程序。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28378.html

相關(guān)文章

  • 什么是CGI、FastCGI、PHP-CGI、PHP-FPM

    摘要:的工作原理啟動(dòng)時(shí)載入進(jìn)程管理器或進(jìn)程管理器自身初始化,啟動(dòng)多個(gè)解釋器進(jìn)程可見(jiàn)多個(gè)并等待來(lái)自的連接。當(dāng)客戶端請(qǐng)求到達(dá)時(shí),進(jìn)程管理器選擇并連接到一個(gè)解釋器。什么是是一個(gè)管理器,是只用于的其實(shí)是源代碼的一個(gè)補(bǔ)丁,旨在將進(jìn)程管理整合進(jìn)包中。 什么是CGI CGI全稱是公共網(wǎng)關(guān)接口(Common Gateway Interface),HTTP服務(wù)器與你的或其它機(jī)器上的程序進(jìn)行交談的一種工具,其程...

    MycLambert 評(píng)論0 收藏0
  • CGI、FastCGI、PHP-CGI和PHP-FPM 概念區(qū)分

    摘要:原理啟動(dòng)時(shí)載入進(jìn)程管理器或進(jìn)程管理器自身初始化,啟動(dòng)多個(gè)解釋器進(jìn)程可見(jiàn)多個(gè)并等待來(lái)自的連接。當(dāng)客戶端請(qǐng)求到達(dá)時(shí),進(jìn)程管理器選擇并連接到一個(gè)解釋器。子進(jìn)程接著等待并處理來(lái)自進(jìn)程管理器運(yùn)行在中的下一個(gè)連接。 CGI 簡(jiǎn)介 CGI全稱是通用網(wǎng)關(guān)接口(Common Gateway Interface),是外部應(yīng)用程序與與服務(wù)器之間的接口標(biāo)準(zhǔn),是在CGI程序和web服務(wù)器之間傳遞信息的規(guī)程。 在...

    light 評(píng)論0 收藏0
  • PHP|什么是CGI, FastCGI, PHP-CGI, PHP-FPM, Spawn-FCGI

    摘要:當(dāng)客戶端請(qǐng)求到達(dá)時(shí),進(jìn)程管理器選擇并連接到一個(gè)解釋器。什么是是一個(gè)管理器,是只用于的可以在下載得到其實(shí)是源代碼的一個(gè)補(bǔ)丁,旨在將進(jìn)程管理整合進(jìn)包中。與功能比較都是守護(hù)的進(jìn)程管理器。 什么是CGI CGI全稱是公共網(wǎng)關(guān)接口(Common Gateway Interface),HTTP服務(wù)器與你的或其它機(jī)器上的程序進(jìn)行交談的一種工具,其程序須運(yùn)行在網(wǎng)絡(luò)服務(wù)器上。 CGI可以用任何一種語(yǔ)言編...

    el09xccxy 評(píng)論0 收藏0
  • 困擾已久的問(wèn)題cgi、fastcgi、PHP-fpm匯總

    摘要:通過(guò)或在服務(wù)器上運(yùn)行時(shí)可以使用的可執(zhí)行文件,可以理解為解釋器也有說(shuō)是官方的進(jìn)程管理器,至于是什么文章后面再分析,這里就當(dāng)作解釋器。就是為了解決的問(wèn)題,制定的協(xié)議。 一個(gè)模糊的概念 無(wú)論是php,python編程語(yǔ)言,還是apache,nginx服務(wù)器對(duì)于cgi協(xié)議是個(gè)繞不開(kāi)的話題。安裝,部署都會(huì)經(jīng)常的看到,那么它們到底是干什么的,網(wǎng)上的答案非常的多!今天通過(guò)它們進(jìn)行一波匯總,徹底告別這...

    nidaye 評(píng)論0 收藏0
  • 困擾已久的問(wèn)題cgi、fastcgi、PHP-fpm匯總

    摘要:通過(guò)或在服務(wù)器上運(yùn)行時(shí)可以使用的可執(zhí)行文件,可以理解為解釋器也有說(shuō)是官方的進(jìn)程管理器,至于是什么文章后面再分析,這里就當(dāng)作解釋器。就是為了解決的問(wèn)題,制定的協(xié)議。 一個(gè)模糊的概念 無(wú)論是php,python編程語(yǔ)言,還是apache,nginx服務(wù)器對(duì)于cgi協(xié)議是個(gè)繞不開(kāi)的話題。安裝,部署都會(huì)經(jīng)常的看到,那么它們到底是干什么的,網(wǎng)上的答案非常的多!今天通過(guò)它們進(jìn)行一波匯總,徹底告別這...

    Hwg 評(píng)論0 收藏0
  • 困擾已久的問(wèn)題cgi、fastcgi、PHP-fpm匯總

    摘要:通過(guò)或在服務(wù)器上運(yùn)行時(shí)可以使用的可執(zhí)行文件,可以理解為解釋器也有說(shuō)是官方的進(jìn)程管理器,至于是什么文章后面再分析,這里就當(dāng)作解釋器。就是為了解決的問(wèn)題,制定的協(xié)議。 一個(gè)模糊的概念 無(wú)論是php,python編程語(yǔ)言,還是apache,nginx服務(wù)器對(duì)于cgi協(xié)議是個(gè)繞不開(kāi)的話題。安裝,部署都會(huì)經(jīng)常的看到,那么它們到底是干什么的,網(wǎng)上的答案非常的多!今天通過(guò)它們進(jìn)行一波匯總,徹底告別這...

    Winer 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<