CGI與WEB伺服器的響應頭

2021-06-20 09:37:49 字數 1684 閱讀 5230

我們知道 cgi 除了文字外還可以輸出其他不同的資料例如、聲音等資料流,為了讓 

websever能辨認不同的資料型態,所以cgi 的輸出包括兩部分,前面的是相應頭告訴 

server要輸出的資訊屬於何種mime型別,後面才是我們要輸出的資料;具體上響應頭與 

輸出正文、響應頭與響應頭之間是用兩個空行作為分隔的,通常大部分的cgi程式都會有 

一行 print "content-type: text/html\n\n"; 下面跟著才是要輸出的資訊。這個響應 

頭地意思是告訴server要輸出的資訊的mime型別是文字/超文字。如果你是要輸出的是一 

張的print "content-type: image/gif\n\n"; 跟著是的資料流就可以了。 

當然響應頭的作用不僅僅是這些,利用響應頭我們在編寫cgi時大有文章可作,下面有幾 

個重要的響應頭是在我們寫程式時也是很有用的: 

print "pragma:no-cache\n\n"; 

這個響應頭是通知瀏覽器不要把該頁面儲存在緩衝區中 

print "location: url" 

返回乙個指定的url,有時如果你想讓程式動態得返回乙個url給來訪者就得用到這個響應 

頭,但每次只能返回乙個url,舉個應用的例子,當你主頁訪問量較大而想減輕伺服器的 

負擔,那麼可以建立多個映象站點,通過cgi隨機傳送映象站點的url從而減輕伺服器的負擔。 

print "set-cookie:name1=value;name2=value2;exprires=date;path=path;domiam=domain_name;secure\n";

cgi這個響應頭就是利用這個響應頭在來訪者的計算機上設定cookie的,如果你想知道如何 

具體用cgi在來訪者的計算機上設定cookie那麼請看本站的關於cgi讀寫cookie的程式設計。 

如果cgi程式所送出的結果不希望經過 server 的 包 裝,而希望直接送到客戶端的瀏覽器, 

則cgi必須負責送出完整的超本文傳輸協定(http)訊息 封包(message packaged)。當server 

收到cgi程式輸出的結果時,會先檢查是否有 "http/1.0" 的訊 息。如果有則server會認為 

以下的訊息已 經包 含 了完整的超本文傳輸協定(http)回應,並將其直接送至客戶端的瀏 

覽程式(browser)。以下是一簡短的範例 ∶  

"; 為了讓webserver知道不必為cgi生成響應頭,cgi程式的檔案明必須有字首 "hph-" 或 "nph-", 

例如nph-mycgi.cgi 

status: 說明cgi執行的況狀,其值必須是超本文傳輸協定(http)所認可的。

解讀web伺服器的http頭

我們有的朋友發現iis伺服器的 屬性中有乙個特殊的頁面 http頭 如下 並且對此非常不解。好吧,我來解釋一下 這個頭其實就是說伺服器端傳送給瀏覽器的一些特殊訊息。有時候是一些附加訊息 瀏覽器可能可以根據這些訊息進行相應的處理。首先,我們來看看如果僅僅是一些附加訊息,例如我上面新增到乙個author...

設定 tornado 伺服器的響應行和響應頭

設定 tornado 伺服器的響應行和響應頭from tornado.httpserver import httpserver from tornado.ioloop import ioloop from tornado.options import define,parse config file...

CGI伺服器原理

cgi伺服器原理 include include include include include include include intmain struct sockaddr in s add,c add unsigned short portnum 12345 char ip 192.168.3...