2010-02-02 38 views
7

由於與我們正在與他們呼籲我們的服務器已經混合了URL工作的加盟合作伙伴誤傳。是一個查詢字符串與/有效嗎?

這是他們應該到我們的服務器上調用的網址:

/AAAAAAAA/?b=CCCCCCC 

unfotunately它是在他們的系統中實現,因爲這

?b=CCCCCCC/AAAAAAA 

我可以很容易地分析出了成分,但我我很擔心帶有/的查詢字符串參數實際上並不是一個有效的URL。

是一個/在URL實際上是有效的 - 或者我應該關心。在什麼情況下,未經編碼/導致查詢字符串出現問題。

+1

我愛/是怎麼分析出來的網址這個問題:-) – 2010-02-03 09:38:22

回答

2

雖然我從來沒有遇到過的問題,他們不會允許在技術上按照RFC 2396

在查詢部分,字符 「;」, 「/」,「: 「?」 「,」@「,」&「,」=「,」+「,」,「和」$「保留。

但正如我說......我從來沒有遇到任何問題。我認爲這對舊版瀏覽器來說是一個問題,但也許有人可以更清楚地解釋這個問題導致的問題。

+0

我有點想通技術上它是不允許的(出於顯而易見的原因),但我原以爲會這樣幾乎沒事。隨着中說我想知道如果一些時髦的變薄可能與代理,舊的瀏覽器,安全工具等發生 – 2010-02-03 00:24:35

+0

@Simon - 我還沒有發現任何不良影響,但我對他們的用途通常是非常具體的,例如'登錄?RU =路線/ SubRoute /分類/ 45'。 – 2010-02-03 00:28:39

+0

好,所以我們希望我們一個星期都可以。謝謝 - 並且驚訝某個實際使用'/'的人設法很快找到了我的問題! – 2010-02-03 01:04:39

1

斜線是在每RFC 2396部3.4的URL的查詢部分一個「保留字符」,所以根據2.2節它必須被編碼。也就是說,查詢部分可以包含%2F,但不應包含/

+0

但實際上是否有什麼實際上會打破?我想獲得固定的URL格式,但是他們的下一個版本需要一週的時間 – 2010-02-03 00:24:59

+0

@Simon如果有人知道這個問題的答案,那就是你。 – hobbs 2010-02-03 04:01:39

+0

好吧,它不會爲我在Chrome或IE8中打破,但也許它確實爲使用Mosaic 1.0的人打破了?我不知道;-) – 2010-02-07 20:25:26

5

根據RFC 3986: Uniform Resource Identifier (URI): Generic Syntax(2005年),是的,/是允許在查詢組件。這是BNF的查詢字符串:(在RFC 3986附錄A)

query   = *(pchar/"/"/"?") 
pchar   = unreserved/pct-encoded/sub-delims/":"/"@" 

細則中指出:( 「?」)

  • 字符斜槓( 「/」)和問號可以代表查詢組件內的數據。
  • 作爲查詢部件經常被用來攜帶標識信息中的「鍵=值」對與一個頻繁使用的值的形式是另一URI的引用,它是有時更好的可用性,以避免百分號編碼那些人物

這裏有一個相關的問題: Query string: Can a query string contain a URL that also contains query strings?

+0

這應該是正確的答案,因爲RFC 3986是2396的替代品。 – 2017-03-22 19:33:30

相關問題