问题标签 [rfc2396]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
13272 浏览

java - 编码和解码 rfc2396 URL

对 URL 字符串进行编码以使其符合 rfc2396 并解码符合 rfc2396 的字符串(例如 %20 被替换为空格字符)的最佳方法是什么?

编辑: URLEncoder 和 URLDecoder 类编码/解码符合 rfc2396 的 URL,它们编码为 MIME 类型的 application/x-www-form-urlencoded,用于编码 HTML 表单参数数据。

0 投票
7 回答
127593 浏览

java - 如何编码 URI 参数值?

我想发送一个 URI 作为查询/矩阵参数的值。在将其附加到现有 URI 之前,我需要根据 RFC 2396 对其进行编码。例如,给定输入:

http://google.com/resource?key=value1 & value2

我期望输出:

http%3a%2f%2fgoogle.com%2fresource%3fkey%3dvalue1%2520%26%2520value2

两者都java.net.URLEncoder不会java.net.URI产生正确的输出。URLEncoder用于 HTML 表单编码,与 RFC 2396 不同。URI没有一次编码单个值的机制,因此它无法知道 value1 和 value2 是同一个键的一部分。

0 投票
3 回答
183 浏览

rfc - 我在哪里可以获得 RFC 2396 的简要概述?

我想更好地理解 RFC 2396 和整个 URL / URI 的东西,并且由于 Cocoa 的 NSURL 基于 RFC 2396,我寻找一个概述。RFC 本身对我来说太难阅读了。

0 投票
4 回答
6473 浏览

url - URI 的任何路径段都可以有查询组件吗?

根据第 3.3 节,RFC2396 的路径组件- 统一资源标识符

路径可能由一系列路径段组成,由单个斜杠“/”字符分隔。在路径段中,字符“/”、“;”、“=”和“?” 被保留。每个路径段可以包括一系列参数,用分号“;”表示 特点。这些参数对于解析相对引用并不重要。

但是,我从未在除最后一个段之外的任何段中看到带有查询参数的 URL。所以,我不确定我是否正确阅读了这篇文章。

http://www.url.com/segment1?seg1param1=val1/page.html?pageparam1=val2有效的网址吗?

0 投票
3 回答
4108 浏览

asp.net - .Net Uri 编码 RFC 2396 与 RFC 3986

首先,一些快速的背景知识...作为与第三方供应商集成的一部分,我有一个 C# .Net Web 应用程序,它接收一个 URL,其中包含查询字符串中的一堆信息。该 URL 使用 MD5 哈希和共享密钥进行签名。基本上,我拉入查询字符串,删除它们的哈希,对剩余的查询字符串执行我自己的哈希,并确保我的与提供的匹配。

我正在通过以下方式检索 Uri ......

我的问题源于包含特殊字符(如变音符号(ü))的查询字符串。供应商正在计算基于 RFC 2396 表示的哈希值,即%FC. 我的 C# .Net 应用程序正在根据 RFC 3986 表示计算它的哈希值,即%C3%BC. 不用说,我们的哈希值不匹配,我抛出了我的错误。

奇怪的是,.Net 中 Uri 类的文档说它应该遵循 RFC 2396,除非另外设置为 RFC 3986,但我的web.config文件中没有他们说这种行为所需的条目。

如何强制 Uri 构造函数使用 RFC 2396 约定?

如果做不到这一点,是否有一种简单的方法可以将 RFC 3986 八位字节对转换为 RFC 2396 八位字节?

0 投票
2 回答
7413 浏览

.net - 什么是符合 RFC 的 URI

在浏览.NET framework 4.5 的功能时,我发现它支持符合 RFC 的 URI。拥有符合 RFC 的 URI 支持意味着什么?

0 投票
1 回答
488 浏览

http - 如何在 HTTP1.1 中进行符合标准的 GET 查询

简而言之:如何以符合 HTTP1.1 标准的方式来 rfc2616 对像http://example.com/?query这样的 URL 进行 GET 查询

维基百科

rfc2616 中它说

只有 abs_path 和 absoluteURI 与 GET 请求相关。

abs_path

其中 abs_path 实际上来自禁止“?”的uri rfc,因为 abs_path 实际上是查询部分之前的 uri 部分。所以看起来维基百科的变体在语法上是不正确的。

绝对URI

为此,uri rfc 说

因此可以将这样的查询放入 Request-URI 中,但不幸的是 rfc2616 不允许为未与代理交谈的客户端传输 absoluteURI。可以通过网络服务器以符合标准的方式接收它,但实际上不可能通过浏览器或其他客户端以符合标准的方式发送它。

rel_path

令我惊讶的是rfc2616提到了一个“?” 在 rel_path 中,但rfc2396也不允许这样做,实际上也不可能将 rel_path 放在 http 请求的某个位置,因为 rel_path 规则在 rfc2616 中的任何地方都没有在语法上使用。

所以我的问题是,如何以符合标准的方式提出这样的请求,所有浏览器是否都违反了标准?

0 投票
1 回答
894 浏览

url - 为什么像@、$、:和;这样的字符 url查询组件中的保留字符?

我正在阅读关于 URL 的RFC2396 ,上面写着

许多 URI 包括由某些特殊字符组成或由某些特殊字符分隔的组件。这些字符被称为“保留”,因为它们在 URI 组件中的使用仅限于它们的保留用途。

但是关于 url 查询部分(在 ? 和 # 之间)的部分说

3.4. 查询组件 查询组件是由资源解释的信息字符串。

在查询组件中,保留字符“;”、“/”、“?”、“:”、“@”、“&”、“=”、“+”、“”和“$”。

每个字符的“保留目的是什么?我了解查询中使用的 &、= 和 + 的用途,但是其他字符呢?

更实际的是,当它们在查询中时,我是否应该始终对这些字符进行 url 编码?我见过的浏览器和服务器处理 : 和 ; 和其他未经编码的字符

0 投票
1 回答
292 浏览

apache-flex - 根据 RFC RFC 2396 Flex 编码字符串

如何使用 Actionscript/Flex 3 根据 RFC 2396 对字符串进行编码?

提前致谢!

0 投票
1 回答
39 浏览

php - 根据 RFC 拆分 URL 路径

是否有将 URL 路径拆分为路径组件的特定(标准化)方法?我查看了 RFC 2396,但看不到这样做的例程。

最初我只是在遇到 each 时使用 PHP 的explode()方法将字符串分解为一个数组/,但是在针对 Cocoa 的NSURL类进行测试时,我得到了两个不同的结果:

测试网址:https ://example.com/rest/api///v2.1.1/noun/verb////12345/additional/stuff///

NSURL:

我的PHP方法:

我意识到 RFC 2396 已被 RFC 3986 取代,但 NSURL 使用 2396,这就是我正在测试的内容,因为它将是客户端实现。