2010-01-15 315 views
1

是否可以使用C作爲應用程序和Web服務器來編寫Web應用程序。獨立Web應用程序

我的意思是,通常情況下,Web應用程序是由Apache調用的PHP編寫的。如果你想寫一個非常快速和高效的小應用程序,你可以寫一個可執行文件獨立於Apache和PHP解釋器嗎?

非常感謝, 馬吉德

編輯:我想寫一個簡單的遊戲,遊戲是多玩家,並應作爲服務器端運行,客戶端部分可以在瀏覽器中的HTML表單。你知道我可以用作骨架的任何簡單的開源遊戲嗎?我想要一些不需要單獨的網絡服務器或數據庫服務器的東西

+1

注意:如果您想啓動一個小程序,每個Web請求,其可擴展性將受到限制操作系統創建新進程的能力。 – 2010-04-22 17:43:57

回答

3

確定它是可能的 - 如果您可以用C編寫OS,則可以編寫Web服務器和應用程序。這隻會是更多的工作。

這是一個只有200行代碼的example C web server

+0

你知道這樣的應用程序的任何例子嗎?也許是一個簡單的(開源)遊戲? – 2010-01-15 17:18:46

+0

發佈示例鏈接。但它只服務於靜態頁面,所以你可能需要谷歌來提供更強大的功能。 – 2010-01-15 17:21:40

+0

謝謝Kaleb。將嘗試它。 – 2010-01-15 17:28:07

1

當然你可以自己寫一個。 HTTP協議非常龐大,但您無需成爲完全兼容的Web服務器來運行您自己的應用程序。

C應用程序必須偵聽您決定運行服務器的任何端口(默認爲80)的請求。在HTTP中有各種各樣的request methods,但至少你必須實現GET,或者甚至可以使用,但是從你的web應用程序開始你就可以控制這個方面。

這是一個基本要求的一個例子,你的C程序應該解析:

GET /index.html HTTP/1.1 
Host: www.example.com 

,並返回與所請求的內容和響應頭,如響應:

HTTP/1.1 200 OK 
Date: Mon, 23 May 2005 22:38:34 GMT 
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) 
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT 
Etag: "3f80f-1b6-3e1cb03b" 
Accept-Ranges: bytes 
Content-Length: 438 
Connection: close 
Content-Type: text/html; charset=UTF-8 

我可以有已經提到過這個,但HTTP協議真的是浩大的。具有不同功能的瀏覽器可以訪問該網站,因此您必須作出相應迴應。話雖如此,因爲它全部在你的控制之下,所以你可以從一小部分你想要處理的請求/頭文件的小部分,單線程,一次一個請求開始,等等,然後從那裏。

像卡萊布說,如果C能夠在操作系統和飛船一起使用,那麼我們可以肯定編寫一個Web和應用服務器與它:)

0

我只是嘻哈的PHP可能被用於此目的。以下是他們對此的看法:

HipHop for PHP將PHP源代碼轉換爲高度優化的C++。它是由Facebook的開發並在年初發布了開源2010年

它可以被訪問here