当前位置:首页 行业动态 正文

金色观察|RSS3项目实现的基础:RFC3986统一资源识别符

2025-01-02

RSS3被web3领域视为一个很有前景的项目,近期,我一直在体验web3应用,想试着去找到web3核心要素的一些定义范式,恰巧在看RSS3时,发现了我想找的一个协议,可以定义为数据规范协议,协议为RFC3986统一资源识别符,也可以理解为一个通用语法。

其文档原文3w余字,不易阅读,因此我把文档做了大量删改,为理解web3的数据格式,做一个范例。

要知晓的是,该规范是互联网信息标准,出现应用时间很早,RSS3是在这个基础上作出的一些开发实践以在web3领域应用。

RSS3

RSS3是一个开放的信息联合协议,旨在支持Web3中高效和分散的信息分发。它定义了信息呈现和通信的格式,其他使用方可以轻松地以统一的格式访问各种内容源,而无需大量的兼容逻辑。

在RSS3协议里将信息分为四种类型:配置文件、链接、资产、注释

RSS3应用程序使用RSS3SDK以RSS3协议定义的格式访问和发布数据,RSS3 SDK从RSS3网络获取数据并将数据发布到RSS3支持的网络,RSS3 Network从各种RSS3 Supported Networks爬取数据,将数据缓存到自己的高效数据库中,做一些预处理,例如应用人工智能推荐算法,提供搜索功能。

在这样的产品设计里,其最原始的数据规范,是对网络传输数据进行一些细节的定义来完成的,定义了数据,就完成了基础的数据可用性部分。上层应用就可以更轻松实现,让我们来看这个协议:RFC3986统一资源识别符。经过删改后的内容,笔者力求达到简略了解互联网数据处理的一些相关要求。

RFC3986:统一资源识别符

本规范源自RFC2396[RFC2396]、RFC1808[RFC1808]和RFC1738[RFC1738],还包含更新(与更正)用于主机语法中的IPv6文字。

统一资源标识符(URI)是一个紧凑的序列标识抽象或表示物理资源的字符,提供了一个简单且可扩展的用于识别资源的方法。规范定义了通用URI语法和相对形式的URI引用的过程解析,以及使用URI的指南和安全注意事项。

URI语法则定义了一个语法超集,有效的URI允许实现公共组件解析,实现在非特定方案要求的情况下使用URI引用每个可能的标识符,规范没有定义URI的生成语法。

统一资源标识符(URI)语义来源于World Wide引入的概念Web全球信息倡议,语法旨在满足“Internet功能性建议”中列出的资源定位器[RFC1736]和统一资源名称功能的要求[RFC1737]。

本文档废弃了[RFC2396],合并了“统一资源定位器”[RFC1738]和“相对统一资源定位器”[RFC1808]以便为所有URI定义一个单一的通用语法。废弃[RFC2732],引入了IPv6地址的语法。

URI的特点

均匀性

它允许不同类型的资源在同一上下文中使用相同的资源标识符,即使在用于访问这些资源的机制可能不同。

它允许对常见句进行统一的语义解释完成对跨不同类型资源标识符的约定。

它允许引入新类型的资源标识符,而不会干扰现有标识符的使用方式。

它允许标识符在许多不同的上下文中重复使用,从而允许新的应用程序或协议利用现有的、大量且广泛使用的资源标识符集。

资源

“资源”一词在一般意义上指任何可能由URI标识的内容。熟悉的例子包括电子文档、图像、信息源、服务和其他的资源集。资源不一定通过互联网访问。同样地,抽象概念也可以是资源,例如运算符和数学方程的操作数,关系的类型(例如,“父母”或“员工”),或数值(例如,零,一,无穷大)。

标识符

标识符体现了对所需信息区分并从其范围内的所有其他事物中识别出的内容鉴别过程。但这些定义不应该被误认为是标识符的定义或体现所引用内容的身份,在许多情况下,URI用于表示资源,但不表示可以被访问。同样,标识的“一个”资源可能本质上不是单数的(例如,一个资源可能是一个命名集或一个随时间变化的映射)。

URI具有全局范围,并且无论何种情况都被用来一致地解释上下文,尽管这种解释的结果可能在与最终用户的上下文相关。例如,“http://localhost/”对该引用的每个用户都有相同的解释,即使与“localhost”对应的网络接口可能是不同的用户,这代表:解释与访问无关。

通用语法

URI语法是一种联合且可扩展的命名系统,其中每个方案的规范可以进一步限制使用该方案的标识符的语法和语义。

URI引用使用独立解析机制,通过该机制,协议和数据使用URI引用的格式可以参考这个规范的所有允许语法范围来定义URI,还包括那些尚未定义的方案。

通用URI语法的解析器可以将任何URI引用解析为其主要组成部分。方案确定后,进一步

可以对组件执行特定于方案的解析。换句话说,URI通用语法是所有URI语法的超集

URI、URL和URN

URI可以进一步分类为定位符、名称或两者。

“统一资源定位器”(URL)指的是URI的子集。除了识别资源之外,还提供了一种通过描述资源的访问机制来定位资源的方法(例如,它的网络“位置”)。

“统一资源名称”(URN)曾用于指代在资源不复存在或变为不可用情况下仍保持全局唯一属性的任何其他URI。

URI是来自非常有限的集合:拉丁字母、数字、和一些特殊字符。

URI可以用多种形式表示方式;例如,纸上的墨水、屏幕上的像素或一系列字符编码八位字节。URI的解释仅取决于使用的字符。在本地或区域环境中,随着技术的进步,用户能够使用更广泛的字符。

识别与交互分离

对URI的一个常见误解是它们仅用于引用到可访问的资源。URI本身只提供鉴别,不保证访问资源URI的存在暗示。相反,任何相关的URI引用由协议元素定义,例如数据格式属性或它出现的自然语言文本。

给定一个URI,系统可能会尝试在资源上执行各种操作,可能以“访问”“更新”、“替换”或“查找属性”等词为特征。这样的操作是由使用URI的协议定义。

分层标识符

URI语法是分层组织的,组件重要性