2010-08-04 107 views
2

CGI程序通常會獲得一個HTTP請求。CGI處理持久HTTP連接上的多個請求

HTTP 1.1支持持久HTTP連接,從而在不關閉連接的情況下創建多個HTTP請求/響應。

CGI程序(或類似的機制)有辦法在同一個連接上處理多個HTTP請求/響應嗎?

我正在使用Apache httpd。

回答

2

保持活動是Web服務器完全處理的高級HTTP功能之一。它們本身就超出了CGI應用程序的範圍。

通過Apache mod_cgi訪問CGI腳本與我保持聯繫。瀏覽器重新使用相同的TCP連接來獲取頁面,然後使用它引用的資源,而不需要有任何特別的腳本。

如果你的意思是你想擁有同樣的CGI 過程處理一個請求,然後下一個(而不是過程的結束和一個新的被催生了),那麼恐怕是不可能的。 Web服務器將攔截保持活動狀態,並使它們看起來像單個請求,然後您的腳本可以執行任何操作。 (如果你想這樣做來提高性能,可以考慮一個不同的網關接口,如FastCGI或WSGI等特定於語言的選項。)

1

SCGI聽起來完全像你想要的。它與FastCGI相似,但實現起來更簡單(S表示Simple :))。