Http 基于web的客户端代理如何工作?

Http 基于web的客户端代理如何工作?,http,agent,Http,Agent,我不确定我问的问题是否正确。我指的是本地安装的软件,通常称为“代理”,通过HTTP与某些主机保持定期通信。e、 g.安装LogMeIn时,代理与LogMeIn.com服务器保持通信,以便当您使用web浏览器访问LogMeIn.com并连接到代理时,服务器能够启动通信。但是,代理不是Web服务器,也没有任何端口转发给代理。那么,是代理不断轮询服务器,像一条破记录一样询问“我能帮你吗?我能帮你吗?我能帮你吗?”还是代理与服务器之间的http连接以某种方式保持打开状态?我知道您可以保持http连接打开

我不确定我问的问题是否正确。我指的是本地安装的软件,通常称为“代理”,通过HTTP与某些主机保持定期通信。e、 g.安装LogMeIn时,代理与LogMeIn.com服务器保持通信,以便当您使用web浏览器访问LogMeIn.com并连接到代理时,服务器能够启动通信。但是,代理不是Web服务器,也没有任何端口转发给代理。那么,是代理不断轮询服务器,像一条破记录一样询问“我能帮你吗?我能帮你吗?我能帮你吗?”还是代理与服务器之间的http连接以某种方式保持打开状态?我知道您可以保持http连接打开,但A)如何保持,B)保持多长时间?代理人是否需要表现得像一个不那么烦人的破记录问:“我能帮你吗?还吗?还吗?还吗?”每个问题之间有更多的时间?或者代理是否可以询问一次并无限期等待,仅在得知连接已断开时再次询问

底线是,我想创建一个小的示例程序,用于尝试编写一个使用HTTP通过Internet进行通信的客户机/服务器应用程序。任何一方都需要能够启动命令/请求。代理可能会使用某种API(可能是RESTful)与服务器通信。当我开始实验时,我将使用Perl。创建一个helloworld项目会很有趣,该项目将包含多个平台的多语言示例,包括如何编写代理以及如何与服务器通信。代理代码将执行客户端操作(例如,确定公共IP地址)并将数据发送到服务器。服务器将对数据进行操作(例如,在数据库中存储IP地址)。服务器还可能向代理启动一个命令(例如,嘿,代理!您的CPU类型是什么?),代理和服务器之间的正确身份验证/授权当然是必要的


是否有任何现有项目可供借鉴?有现有的文件吗?也许我只是缺少术语,如果我只知道我所要求的一切都可以用foo这个词来概括,那么我在搜索中所能找到的东西的大门就会敞开

我查看了Ubuntu环境的代码。它使用Python的Twister——HTML5WebSocket的web服务器。所以我想说,我在寻找一个答案是Websockets(双向通信)。现在,这已经打开了大量的选项,node.js、twister、mojolicious,以及更多的web服务器。事实证明,使用Ajax每隔几秒钟进行一次民意调查是一个非常糟糕的主意——这在web服务器上是一个压倒性的打击。保持连接打开。

我查看了Ubuntu环境的代码。它使用Python的Twister——HTML5WebSocket的web服务器。所以我想说,我在寻找一个答案是Websockets(双向通信)。现在,这已经打开了大量的选项,node.js、twister、mojolicious,以及更多的web服务器。事实证明,使用Ajax每隔几秒钟进行一次民意调查是一个非常糟糕的主意——这在web服务器上是一个压倒性的打击。保持连接打开。

尝试重新连接。Logmein使用端口80和443 btw!在Windows上,LogMeIn是一种Windows服务。我不知道它是如何沟通的,因为我已经很久没有使用它了。我使用过Dropbox,它只是偶尔询问服务器是否有需要同步的内容。如果安装Fiddler,您可以看到此通信。请尝试并。Logmein使用端口80和443 btw!在Windows上,LogMeIn是一种Windows服务。我不知道它是如何沟通的,因为我已经很久没有使用它了。我使用过Dropbox,它只是偶尔询问服务器是否有需要同步的内容。如果安装Fiddler,您可以看到此通信。