问题标签 [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.
java - 编码和解码 rfc2396 URL
对 URL 字符串进行编码以使其符合 rfc2396 并解码符合 rfc2396 的字符串(例如 %20 被替换为空格字符)的最佳方法是什么?
编辑: URLEncoder 和 URLDecoder 类不编码/解码符合 rfc2396 的 URL,它们编码为 MIME 类型的 application/x-www-form-urlencoded,用于编码 HTML 表单参数数据。
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 是同一个键的一部分。
rfc - 我在哪里可以获得 RFC 2396 的简要概述?
我想更好地理解 RFC 2396 和整个 URL / URI 的东西,并且由于 Cocoa 的 NSURL 基于 RFC 2396,我寻找一个概述。RFC 本身对我来说太难阅读了。
url - URI 的任何路径段都可以有查询组件吗?
根据第 3.3 节,RFC2396 的路径组件- 统一资源标识符,
路径可能由一系列路径段组成,由单个斜杠“/”字符分隔。在路径段中,字符“/”、“;”、“=”和“?” 被保留。每个路径段可以包括一系列参数,用分号“;”表示 特点。这些参数对于解析相对引用并不重要。
但是,我从未在除最后一个段之外的任何段中看到带有查询参数的 URL。所以,我不确定我是否正确阅读了这篇文章。
是http://www.url.com/segment1?seg1param1=val1/page.html?pageparam1=val2
有效的网址吗?
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 八位字节?
.net - 什么是符合 RFC 的 URI
在浏览.NET framework 4.5 的功能时,我发现它支持符合 RFC 的 URI。拥有符合 RFC 的 URI 支持意味着什么?
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 中的任何地方都没有在语法上使用。
所以我的问题是,如何以符合标准的方式提出这样的请求,所有浏览器是否都违反了标准?
url - 为什么像@、$、:和;这样的字符 url查询组件中的保留字符?
我正在阅读关于 URL 的RFC2396 ,上面写着
许多 URI 包括由某些特殊字符组成或由某些特殊字符分隔的组件。这些字符被称为“保留”,因为它们在 URI 组件中的使用仅限于它们的保留用途。
但是关于 url 查询部分(在 ? 和 # 之间)的部分说
3.4. 查询组件 查询组件是由资源解释的信息字符串。
在查询组件中,保留字符“;”、“/”、“?”、“:”、“@”、“&”、“=”、“+”、“”和“$”。
每个字符的“保留目的是什么?我了解查询中使用的 &、= 和 + 的用途,但是其他字符呢?
更实际的是,当它们在查询中时,我是否应该始终对这些字符进行 url 编码?我见过的浏览器和服务器处理 : 和 ; 和其他未经编码的字符
apache-flex - 根据 RFC RFC 2396 Flex 编码字符串
如何使用 Actionscript/Flex 3 根据 RFC 2396 对字符串进行编码?
提前致谢!
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,这就是我正在测试的内容,因为它将是客户端实现。