如何使 HTTP PUT 成为 GET 的逆操作?

如何使 HTTP PUT 成为 GET 的逆操作?

我想告诉 Apache 将 HTTP PUT 视为 GET 的逆操作。服务器应将使用 PUT 发送的文件存储在该位置,其中包含相同位置的 GET 请求将读取该文件。

我发现只有例子对于 HTTP PUT,需要 CGI 或 PHP 脚本和mod_put似乎已经死了。首先我想避免使用脚本:CGI,因为炮弹休克和 PHP 因为PHP。其次,即使我尝试编写一些 CGI,我也不知道 Apache 在 CGI 中的位置目录映射。我不知道如何将位置从 URL 映射到文件系统中的路径,因为 Apache 会在 GET 期间执行相反的操作。

如何在没有任何 CGI 或脚本引擎的情况下实现与 GET 完全相反的 HTTP PUT?

答案1

apache 核心具有处理 PUT 请求的功能,但不幸的是,它只能将请求转发给它的一些处理程序模块(例如 PHP 或 cgi 脚本)。

对于您拥有的功能,此 PUT 功能也必须在 apache 模块中实现。apache 模块与 java servlet 或 cgi 脚本相同:它们获取 http 请求、处理它们并返回结果。

不幸的是,Apache 模块本来可以通过 PUT 请求实现文件上传功能,但最终却没有开发出来。我必须指出:即使你可以做到这一点,尽管 Apache 界面不是我见过的最漂亮的,但这是可能的,而且工作量也不大。但最终还是没能实现。或者可以重新激活 mod_put 模块。我可以在一周内完成这项工作,但没人付钱让我做这件事,或者我没有一周的空闲时间。如果你问世界上的每一个程序员,他们都会这么说。

有很多工具/模块具有非常相似的功能,尤其是 WebDAV,这对您来说非常有趣。使用它们您可以实现这些功能,尽管它们不是通过 PUT 工作,而是通过多部分 POST 查询工作。而且 WebDAV 有点过头了,因为即使是简单的任务,它也会使用硬(且大多不需要)的 xml 处理。

相关内容