2014-02-26 27 views
3

我需要一個非常簡單的Web解決方案在Linux設備上運行以處理HTML表單,因此打算使用uwsgi和Lua。具有Lua的基本CGI

在CGI腳本,this article使用下面的代碼:

print ("Content-type: Text/html\n") 
print ("Hello, world!") 

然而,這個工程太:

print("Status: 200 OK\r\n\r\nHello, world!\r\n") 

我想知道什麼是CGI腳本真正需要返回Web服務器。

謝謝。

+0

你最好使用'io.write'來完全控制輸出,因爲'print'會添加製表符和換行符。 – lhf

回答

2

你不需要一個頭可言,你真正需要的唯一的事情就是空行結束頭,並開始身體:

print ("\nHello, World") 

應該正常工作。

但是,你至少應該包括的內容類型,包括字符集,因爲瀏覽器應該默認爲ISO-8859-1,但用戶可以覆蓋這一點,你應該使用 UTF-8避免限制你可以顯示的字符。

print("Content-type: text/html; charset=utf-8") 

另外,如果你正在編寫一個應用程序,你可能要避免緩存,所以我會花額外的

print("Cache-control: no-cache") 
print("Pragma: no-cache") 

防止瀏覽器和代理緩存從你的頁面。

+0

感謝Guntram的資訊。 – Gulbahar

0

還需要處理HTML表單數據(比如POST數據)。您可以使用Ajax Forms(JavaScript庫)的強大功能將您的POST數據作爲JSON發送,您可以使用io讀取它:將('*')讀回到您的Lua腳本。