问题标签 [rfc3986]
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.
maven - 在 Maven 依赖项中定位资源的 URI 方案?
我需要一个 URI 来定位 Maven 依赖项中的资源。例如,如果我声明一个依赖项:
我想访问/path/to/file.xsl
xslLibrary 中的 ot。当然,我可以通过类路径资源加载访问,但我需要一个 URI 来指向该资源。
URI 方案(根据RFC 3986)是否已经在 IETF 注册了此类事情?
我想注册类似的东西:
在此先感谢,克里斯托夫
python - Flask URL 中的 userinfo 组件
我希望我的用户使用以下语法连接到我的 Flask 应用程序:
由 RFC 3986(第 3.2 章)定义。
有没有办法可以username:password
从 Flask 访问该部分?
例如,在我的本地服务器上,如果我http://username@localhost:5000/
从 Chrome 访问,我在 Flask 的request
对象中看不到任何内容,并且该username@
部分会立即从地址栏中消失。
xoxo
5月1日编辑:
这个问题已被标记为重复Flask HTTP Basicauth - 它是如何工作的?
但是,我的问题与基本身份验证协议无关。request.authorization
就None
我而言。
第二次编辑:
好吧,我的错,事实证明username:password@host
确实实现了基本的身份验证协议,但是这种语法已被弃用,并且不再被某些浏览器实现,包括 Chrome(见本页底部)
html - 在相对部分使用多个斜杠解析 URI
我必须在 perl 中编写一个从 html 解析 uris 的脚本。无论如何,真正的问题是如何解决相对 uris。
我有基本 URI(html 中的基本 href),例如 http://a/b/c/d;p?q (让我们通过rfc3986)和其他不同的 URI:
/g, //g, ///g, ////g, h//g, g////h, h///g:f
在这个 RFC 的第 5.4.1 节(上面的链接)中,只有 //g 的示例:
"//g" = "http://g"
那么所有其他情况呢?据我从rfc 3986, section 3.3了解,允许使用多个斜杠。那么,以下分辨率是否正确?
"///g" = "http://a/b/c///g"
或者应该是什么?有没有人可以更好地解释它并用没有过时的 rfc 或文档来证明它?
更新#1:尝试查看此工作网址 - https:///stackoverflow.com////////a////10161264/////6618577
这里发生了什么?
rss - W3C RSS 验证器:无效的 URL
RSS 项目
我正在尝试使用https://validator.w3.org/验证我的 RSS 提要 我收到错误
此 URL 有效且符合 RFC 3986。我无法弄清楚此 URL 有什么问题。如果我从此 URL 中删除“.news”,我的 RSS 将得到验证。“.news”域名有什么问题?它是有效的 TLD 标签。
java - '+'(加号)未使用字符串 url 使用 RestTemplate 编码,但解释为 ''(空格)
我们正在从 Java 8 迁移到 Java 11,从而从 Spring Boot 1.5.6 迁移到 2.1.2。我们注意到,在使用 RestTemplate 时,“+”号不再编码为“%2B”(由 SPR-14828 更改)。这没关系,因为 RFC3986 没有将“+”列为保留字符,但在 Spring Boot 端点中接收时仍将其解释为“”(空格)。
我们有一个搜索查询,它可以将可选的时间戳作为查询参数。查询看起来像http://example.com/search?beforeTimestamp=2019-01-21T14:56:50%2B00:00
.
如果没有双重编码,我们无法弄清楚如何发送编码的加号。查询参数2019-01-21T14:56:50+00:00
将被解释为2019-01-21T14:56:50 00:00
. 如果我们自己对参数进行编码 ( 2019-01-21T14:56:50%2B00:00
),那么它将被接收并解释为2019-01-21T14:56:50%252B00:00
。
另一个约束是,我们希望在设置 restTemplate 时在别处设置基本 url,而不是在执行查询的位置。
或者,有没有办法强制“+”不被端点解释为“”?
我写了一个简短的例子,展示了一些实现更严格编码的方法,它们的缺点解释为注释:
spring-boot - 正确解析包含“+”字符的字段
我遇到了一个奇怪的情况,我在https://github.com/lgueye/uri-parameters-behavior中复制了它
由于我们在方法中请求我们的一个后端时迁移到spring-boot 2 ( spring framework 5GET
),我们遇到了以下情况:所有带有 char 的字段在到达后端时+
都被更改为(whitespace) char
以下值已更改:
- +412386789(电话号码)转入** 412386789**
- 2019-03-22T17:18:39.621+02:00 (java8 ZonedDateTime) 进入2019-03-22T17:18:39.621 02:00(导致org.springframework.validation.BindException
我在 stackoverflow ( https://github.com/spring-projects/spring-framework/issues/14464#issuecomment-453397378 ) 和 github ( https://github.com/spring-projects/spring -框架/问题/21577)
我已经实现了一个 mockMvc 单元测试和一个集成测试
单元测试正常运行集成测试失败(如我们的生产)
任何人都可以帮我解决这个问题吗?我的目标显然是让集成测试通过。
谢谢您的帮助。
路易斯
swift - 什么样的 URL 不符合 RFC 3986 但符合 RFC 1808、RFC 1738 和 RFC 2732?
的文档URLComponents.init(url:resolvingAgainstBaseURL:)
说:
返回初始化的 URL 组件对象,如果无法解析 URL,则返回 nil。
知道:
- Swift URL/NSURL 用于基于 RFC 1808、RFC 1738 和 RFC 2732 的 URL:https ://developer.apple.com/documentation/foundation/nsurl
- Swift URLComponents/NSURLComponents 用于基于 RFC 3986 的 URL:https ://developer.apple.com/documentation/foundation/nsurlcomponents
我假设URLComponents
当 URL 符合 RFC 1808/1738/2732 但不符合 RFC 3986 时,初始化将失败。那是什么类型的 URL?有什么例子吗?
到目前为止,我唯一的提示可能与不同的保留字符有关?
uri - 为什么规范/词汇的 URI 包含日期信息?
大多数示例命名空间 URI 似乎在其路径中包含年/月/日的某种组合:
rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs:http://www.w3.org/2000/01/rdf-schema#>
当词汇表中包含的概念不完全是临时的时,为什么在 URI 中包含部分创建日期是有意义的(对我来说)这并不明显。
编辑
由于旧的 w3c(以及可能的其他组织)注释仍然存在于语义网络的 SEO 上,因此可能会产生额外的混乱。例如,来自 w3c 用户组的此注释建议在 URI 中使用日期。
可管理性。 以您可以管理的方式发布您的 URI。一种好的做法是在 URI 路径中包含当前年份,这样您就可以每年更改 URI 模式,而不会破坏旧的 URI。
@cygri 仍然正确(链接是 2010 年之前的),只是为遇到冲突信息的人指出这一点。
r - 使用 R 对 RFC1738 进行 URL 解码(PHP 默认)
我需要使用使用 RFC 1738 进行 URL 编码的 R字符串进行解码。
这些字符串来自 PHP 请求,并使用默认使用 RFC1738http_build_query
的 PHP 函数进行编码。
例如,Hello, World!
变成Hello%2C+world%21
。
您可以使用以下 PHP 代码轻松在线试用:
不幸的是,R 基础 URL 编码使用 RFC 3986,这是不同的!
我想"Hello, world!"
回来!我怎么能用 R 做到这一点?
我很高兴将
+
符号替换为空格,但如果这是您的答案,请说明为什么这是正确的。到目前为止,我的研究并未表明 RFC 1738正是带有加号的 RFC 3986,我不想要奇怪的边缘情况......
tomcat - 如何使 Tomcat 在 GET 参数中支持非 RFC7230/ RFC3986 字符?
Tomcat从7.0升级到8.5后,发现GET请求参数中如果包含中文或韩文字符,tomcat会抛出IllegalArgumentException: Invalid character found in the request target。
原因是tomcat不再支持RFC 7230和RFC 3986以外的字符。我们尝试了一些解决方案:
relaxedQueryChars
在server.xml中根据 配置
但是,该值可以是以下字符的任意组合:" < > [ \ ] ^
{ | }`,值中存在的任何其他字符都将被忽略。这意味着中文/韩文参数仍然会出错。
- 修改客户端,在请求api时对各个参数进行编码。
可以解决问题,但是好像不可行,因为我们不能修改所有的客户端,比如发布的APP不能修改。
有什么好的通用解决方案吗?我希望可以更改一些 tomcat 配置,使其在 GET 参数中支持中文/韩文字符。