如何在 HTTP 中使用 URI DNS 记录?

如何在 HTTP 中使用 URI DNS 记录?

我正在尝试使用带有 HTTP 的 URI 记录https://en.wikipedia.org/wiki/URI_record

在 Cloudflare 上我输入subName但是https://example.com/page/如果Content我去https://sub.example.net它说curl: (6) Could not resolve host: sub.example.net

答案1

目的

RFC 7553 记录的目的URI不是为了取代HTTP 重定向,但作为 S-NAPTR 的补充(5.2),取代U-NAPTR(5.3) 并替换SRV(5.4) 记录类型。我认为预期目的最好用第 2 节

一般而言,客户端会将 URI 记录用于已知相关协议的应用程序,但例如需要额外的抽象才能将域名与服务点(由 URI 寻址)分开。这种情况的一个例子是,一个组织有许多域名,但只有一个官方网页。

就像记录一样SRV,这要求设计一个应用程序来使用URI记录来查找此信息。Web 浏览器不遵循 URI 记录甚至不会尝试解决它们。HTTP 协议根本不使用URI记录,并且 Web 浏览器遵循该协议。

用法

正如 Michael Hampton 在评论中提到的,我从未见过使用URI记录的服务、协议或应用程序。例如,SRV 记录的维基百科文章有用法部分列出了一些使用SRV资源记录类型的协议,但截至 2020 年 7 月,记录文章URI甚至没有类似的部分。没有人使用这种记录类型。

语法

第 2 节继续:

应用程序需要知道在主机名前添加的特定服务。

有一个例子第 5.1 节

一个组织有域名example.comexample.net,他们的 FTP 存档位于ftp://ftp1.example.com/public。给定服务名称ftp和传输协议tcp(来自 IANA“服务名称和传输协议端口号注册表”),可以在相应区域(example.com 和 example.net)中提供以下 URI 资源记录:

$ORIGIN example.com.
_ftp._tcp    IN URI 10 1 "ftp://ftp1.example.com/public"

$ORIGIN example.net.
_ftp._tcp    IN URI 10 1 "ftp://ftp1.example.com/public"

让我们想象一下Web 浏览器已采用 RFC 7553URI记录。在这种情况下,URIHTTP 服务的记录sub.example.net将位于_http._tcp.sub.example.net

_http._tcp.sub.example.net. IN URI 10 1 "https://example.com/page/"

由于语法错误,您所配置的内容将无法按预期工作。

如何实现您想要的功能

一般来说,你需要创建一个 HTTP/HTTPS 服务,sub.example.net用以下方式回复301 Moved PermanentlyRFC 7231, 6.4.2) 或者302 Found6.4.3) 和Location7.1.2) 包含https://example.com/page/简而言之,HTTP 重定向

使用 Cloudflare,可以使用以下方式配置 HTTP 重定向Cloudflare 页面规则

相关内容