gpt4 book ai didi

node.js - 我可以向 Node HTTP 服务器注册自定义 URL 方案/协议(protocol)吗?

转载 作者:搜寻专家 更新时间:2023-10-31 23:57:31 26 4
gpt4 key购买 nike

我希望能够使用 Node HTTP API 处理自定义 URL 方案。我想在这样的网页中编写链接:app://foo/bar。我想让 Node HTTP 请求处理程序接收这种 URL。

当我在我的 URL 中尝试这种自定义协议(protocol)时,Chrome 似乎没有发送请求,因为它格式错误。因此,我在 Node 中的 HTTP 服务器什么也得不到。

是否可以将您的 HTTP 服务器绑定(bind)到自定义 URL 方案或协议(protocol),如 app://foo/bar

最佳答案

只有某些协议(protocol),例如 http://https:// 会被发送到您的 nodejs http 服务器。这就是问题所在。您的 node.js 服务器是一个 http 服务器。 Chrome 浏览器只会向它发送它知道属于 http 服务器的带有 http 协议(protocol)的 URL。

自定义协议(protocol)必须首先在浏览器中使用浏览器插件处理,然后浏览器插件可以决定如何处理它。


也许您想做的是自定义 HTTP URL,例如:

http://yourserver.com/foo/bar

然后,您的 node.js http 服务器将获取请求的 /foo/bar 部分,您可以为此编写自定义处理程序。


回顾一下,URL 的第一部分,即 :// 之前的部分是协议(protocol)。这告诉浏览器这个 URL 应该使用什么协议(protocol)。如果没有浏览器插件,浏览器仅支持一些内置协议(protocol),例如 httphttpswswssmailto 和其他一些。

http 服务器只能响应 http 协议(protocol),因此它只能处理期望使用 http 协议(protocol)并且浏览器知道使用 http 协议(protocol)的 URL。因此,浏览器不知道的您自己的协议(protocol)不是浏览器知道如何处理的。需要一个浏览器插件来告诉浏览器如何处理自定义 URL。

When I try this kind of url, it almost looks like Chrome is batting it down before it can get to my HTTP server in Node.

是的,它不是浏览器内置的可识别协议(protocol),因此浏览器不知道如何处理它或如何使用该协议(protocol)。

Is it possible to bind your HTTP server to a custom URL Scheme like this?

仅使用注册并实现自定义 URL 协议(protocol)支持的浏览器插件。

关于node.js - 我可以向 Node HTTP 服务器注册自定义 URL 方案/协议(protocol)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50073279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com