我還在開始與Lua,並想寫一個(相對)簡單的代理使用它。使用Lua編寫Proxy/Caching服務器!
這是我想到達:
- 偵聽端口。
- 接受連接。
- 由於這是一個代理,我期待HTTP(Get/Post等)/ HTTPS/FTP /來自我的瀏覽器的任何請求。
- 檢查請求(僅提取主機和端口信息?)
- 創建一個新的套接字並連接到請求中指定的主機。
- 傳遞確切的請求,因爲它收到,與POST數據和所有。
- 接收響應(標題/正文/其他任何內容..)並響應初始請求。
- 關閉連接?我認爲Keep-Alive不應該得到尊重?
我意識到這不應該是微不足道的,但我有很多麻煩設置使用LuaSockets或Copas - 如何接收整個請求?繼續接收,直到我掃描\ r \ n \ r \ n?那我該如何提取發佈數據?和身體?或接受「下載」文件?我讀到了有關「匯」的信息,但是我承認這些信息大部分都不理解,所以或許我應該閱讀更多內容。
萬一它很重要,我正在使用LuaForWindows在windows計算機上工作,而我對Lua還是比較新的。儘管如此,雖然表很簡單:)
我發現lua-http,但它似乎已經合併到Xavante(我沒有找到任何版本的lua 5.1和LuaForWindows),不知道它是否它讓我的生活更輕鬆?
預先感謝任何提示,指針庫/源我應該看等:)
你說得對,謝謝你指出,我沒有想到它是誠實的,但我仍然不確定如何繼續?要仔細看看lua-http-parser,但我確實希望能夠更輕鬆地編寫代碼:「獲取請求+所有數據 - >轉發,接收響應+數據 - >轉發」 – Cyclonus 2011-02-04 14:25:55
一旦您能夠解析請求,你完成了很多。 – 2011-02-04 15:30:27