使用Lua编写代理/缓存服务器!
2011-2-4 8:46:16
收藏:0
阅读:242
评论:2
我仍然在学习Lua,并希望使用它编写一个(相对)简单的代理。
我想要达到的目标是:
1.监听端口。 2.接受连接。 3.因为这是一个代理,我期望在浏览器中收到HTTP(Get / Post等)/ HTTPS / FTP /任何请求。 4.检查请求(只是提取主机和端口信息吗?) 5.创建一个新的套接字并连接到请求中指定的主机。 6.将接收到的准确请求中继,包括POST数据和所有其他信息。 7.接收响应(标头/正文/任何其他内容..)并响应初始请求。 8.关闭连接?我想保持活动状态不应该受到尊重?
我意识到这不应该是轻松的,但是我使用LuaSockets或Copas设置它非常困难。我该如何接收整个请求?继续接收,直到扫描\r\n\r\n?然后如何提取POST数据?正文?还是接受“下载”文件?我读到了有关“源”的内容,但承认对此的大部分含义并不理解,所以也许我应该更多地学习这方面的知识呢?
如果要紧要的话,我正在使用LuaForWindows在Windows机器上工作,还是Lua的新手。到目前为止,我很喜欢它,表格实在是太棒了 :)
我发现lua-http,但似乎已经合并到Xavante中(我没有找到任何适用于lua 5.1和LuaForWindows的版本),我不确定它是否会让我的生活变得更轻松?
感谢提供任何提示、指针、应该查看的库/源等的提前答谢 :)
原文链接 https://stackoverflow.com/questions/4895942
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
将请求代理和服务器请求看作是不同的
并不像你所想的那么容易。在 rfc2616 中,你可以看到当查询代理时,客户端包括请求文档的绝对 URL 而不是通常的相对 URL。
因此,作为代理,您需要解析传入的请求,修改它们,查询适当的服务器,然后返回响应。
解析传入的请求非常复杂,因为正文长度取决于各种参数(方法、内容编码等)。