如何理解CGI,PHP CGI

2021-10-03 12:51:54 字數 1028 閱讀 4037

要了解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 的子...