gpt4 book ai didi

node.js - 如何使用 node.js 使用自定义协议(protocol)/方案定义路由?

转载 作者:可可西里 更新时间:2023-11-01 17:28:10 25 4
gpt4 key购买 nike

我浏览了互联网,但没有找到任何关于如何使用 node.js 使用自定义方案 (my-app://) 创建路由的好资源。

严格来说,它不会是真正的自定义协议(protocol),它会是 http 但使用另一种方案。

我该怎么做?

我可以安装任何 npm 包。

最佳答案

如果它是 HTTP,那么即使其他一些客户端应用程序使用另一种方案进行连接,您仍然会在服务器端将其作为 HTTP 获取。

事实上,在 HTTP 协议(protocol)中,您不会在请求中获取协议(protocol)方案。您在 Host heared 中获取主机(主机名和端口),并在请求的 GET lite(或 POST 等)中获取路径(带有查询字符串但没有片段部分)。客户端绝不会发送任何关于它使用什么协议(protocol)的指示,除非它是对正向代理服务器的请求(但如果它是反向代理则不是)。

假定使用哪种协议(protocol)方案的是您的服务器,因为它知道它在给定端口上使用的协议(protocol)。如果您描述的客户端在 URL 中使用其他协议(protocol)名称但使用 HTTP 连接到您的服务器,则您的服务器只需要知道 HTTP 并且路由通常不包含该协议(protocol),除非它是 Diet .js 但即便如此,它也用于 listen 参数,而不是路由。

这是一个 HTTP 请求示例:

GET / HTTP/1.1
Host: localhost:3344
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,pl;q=0.6

它唯一有“HTTP”的地方是定义协议(protocol)版本的第一行,以便客户端可以正确理解 header ,无论如何你都需要保留它,以便你的服务器可以工作,如果你想使用内置的 http 模块或 Node.js 中的任何框架。如果您更改了它,那么您将不得不编写自己的协议(protocol)解析器。

关于node.js - 如何使用 node.js 使用自定义协议(protocol)/方案定义路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42340677/

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