我正在考虑探索让我们的客户端软件在高端口上作为服务运行并从127.0.0.1监听简单的http GET请求的想法。理论是我可以通过js从我的网站提供的网页访问此服务。
1)用户安装将自身安装为服务的客户端软件,并在127.0.0.1:8080等待经过身份验证的请求
2)当用户点击我的主页页面上的js发出xhtml请求到127.0.0.1:8080并询问状态
3)主页然后再向我的网络服务器发送另一个js请求,发送它收到的状态。
这将允许我的用户从浏览器实时上传/下载和编辑USB连接设备上的文件。轮询可能是与我们今天所做的接近的后备方法。
有没有人这样做过,有什么潜在的陷阱?这甚至会起作用吗?
答案 0 :(得分:3)
我看不出任何潜在的陷阱。不过我确实有几点。
1 /您可能希望确保您的服务仅接受来自本地计算机(127.0.0.1)的传入连接。否则,任何人都可以查看你的JavaScript,并发现它正在与[你的IP]:8080交谈。然后他们可以从远程站点(安全漏洞)尝试自己。
2 /我不会使用端口8080,因为它通常用于其他事情(备用HTTP服务器等)。使其可配置并选择一个漂亮的高随机类型值。
3 /我不确定你在尝试使用第3点做什么,但我认为你正在尝试将状态发回给用户。在这种情况下,为什么主页上的JavaScript只能在单个会话中获取状态并输出/更新要呈现给用户的HTML?你的“另一个js请求回到我的网络服务器”对我没有意义。答案 1 :(得分:1)
您可能无法对127.0.0.1执行xml http请求,因为XMLHTTPRequest通常仅限于与提供主内容相同的域。如果服务器在客户端的计算机上,我不确定是否适用此限制。话虽这么说,您仍然可以创建一个<script>
标签,其中src指向127.0.0.1,并让Web服务器返回一些Javascript来运行。如果您只需要一个简单的响应,这可能会很好。
答案 2 :(得分:0)
我认为避免在JavaScript和HTML中实现应用程序逻辑会好得多。一旦用户点击网页上的按钮,JavaScript就会向您的服务发送请求并允许其完成剩余的工作。
答案 3 :(得分:0)
您可能会遇到第1步(客户端自行安装)的问题,具体取决于您的目标用户群。
从根本上讲,这种方法很合理,并且有一些商业产品正在使用这种方法!