我还在开始与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