首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询字符串中包含/是否有效?

查询字符串中包含/是否有效?
EN

Stack Overflow用户
提问于 2010-02-03 07:49:45
回答 3查看 1.2K关注 0票数 9

由于与合作伙伴的沟通有误,我们正在使用的URL在我们的服务器上被混淆了。

这是他们应该在我们的服务器上调用的URL:

代码语言:javascript
复制
 /AAAAAAAA/?b=CCCCCCC

不幸的是,它在他们的系统中实现为

代码语言:javascript
复制
 ?b=CCCCCCC/AAAAAAA

我可以很容易地解析出组件,但我担心带有/的查询字符串参数实际上不是有效的URL。

URL中的/是否真的有效--或者我应该关注一下。在什么情况下,未编码/会导致查询字符串中出现问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-03 08:04:36

尽管我从来没有遇到过问题,但根据RFC 2396,它们在技术上是不被允许的

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

但就像我说的...我从来没有遇到过任何问题。我认为这是一个老的浏览器的问题,但也许有人可以更多地阐明这导致的问题?

票数 2
EN

Stack Overflow用户

发布于 2011-04-17 10:35:25

根据RFC 3986: Uniform Resource Identifier (URI): Generic Syntax (从2005年开始),是的,在查询组件中允许使用/。这是查询字符串的BNF:(在RFC 3986的附录A中)

代码语言:javascript
复制
query         = *( pchar / "/" / "?" )
pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"

说明书上写着:

  • 字符斜杠("/")和问号("?")可以表示查询组件内的数据。作为查询组件的
  • 通常用于以"key=value“对的形式携带标识信息,并且一个常用的值是对另一个URI的引用,有时为了便于使用,最好避免对那些字符进行百分比编码(-

这里有一个相关的问题:Query string: Can a query string contain a URL that also contains query strings?

票数 11
EN

Stack Overflow用户

发布于 2010-02-03 08:07:35

根据RFC 2396 3.4节,斜杠是URL的查询部分中的“保留字符”,因此根据第2.2节,必须对其进行编码。也就是说,查询部分可以包含%2F,但不应该包含/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2188645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档