要了解cgi之前,先要清楚什麼時候會用到cgi
web service(nginx,apache)是內容的分發者,對客戶端的請求就行應答。
如果只是請求靜態頁面index.html,那麼web service(nginx,apache)就會去找到index.html的位置,直接返回給客戶端,在這裡的web service(nginx,apache)分發的就是靜態資料;
如果請求的是動態頁面index.php,那麼web service(nginx,apache)是不能直接返回的,他會通過配置檔案知道這個是動態頁面,接著呼叫php解析器(php-fpm)進行處理;
那麼web service(nginx,apache)和php解析器(php-fpm)之間是如何互動的呢?答案就是:cgi
什麼是cgicgi程式的工作原理
1)當web server收到index.php這種型別的動態請求後,會啟動對應的cgi程式(php的解析器);
2)php解析器會解析php.ini配置檔案,初始化執行環境,然後處理請求,處理完成後將資料按照cgi規定的格式返回給web server然後退出程序;
3)最後web server再把結果返回給瀏覽器
cgi程式特點
1)高併發效能差(每一次請求都會有啟動和退出的過程,每次http伺服器遇到動態請求時都需要重新啟動指令碼解析器來解析php.ini,重新載入全部dll擴充套件並重初始化全部資料結構,然後把結果返回給http伺服器)
2)安全性差
3)cgi對php.ini敏感,除錯起來很方便
什麼是php-cgi
是 php 對 web server 提供的 cgi 協議的介面程式
php-cgi的特點
1)變更php.ini配置檔案後需要重啟php-cgi才能使配置生效,不能平滑重啟
2)直接殺死程序php就不能執行了
如何理解Socket
socket協議的形象描述 socket的英文原義是 孔 或 插座 在這裡作為4bds unix的程序通訊機制,取後一種意義。socket非常類似於 插座。以乙個國家級 網為例。的通話雙方相當於相互通訊的2個程序,區號是它的網路位址 區內乙個單位的交換機相當於一台主機,主機分配給每個使用者的局內號碼...
如何理解LPCTSTR
l表示long指標,這是為了相容windows 3.1等16位作業系統遺留下來的,在win32中以及其他的32為作業系統中,long指標和near指標及far修飾符都是為了相容的作用。沒有實際意義。p表示這是乙個指標 c表示是乙個常量 t在win32環境中,有乙個 t巨集,這個巨集用來表示你的字元是...
如何理解C
如何理解c 面對這個問題,一千個人有一千個哈姆雷特。我也不知道如何理解c 畢竟我c 程式設計經驗實在是少。在閱讀effective c 這本書時,條款01 視c 為乙個語言聯邦裡面貌似給出了解釋,但是不知道能不能作為這個問題的答案。說起c 大多數人都會和c聯絡起來。誠然,c 是c的超集,c是c 的子...