2015-11-04 79 views
1

我遇到了一個有趣的URL,看起來像這樣;爲什麼某些網址有像%20這樣有趣的字符?

http://127.0.0.1:8888//echo/this%20is%20just%20a%20test 

這使得REST API看起來很奇怪。是否有一些正當的理由,還是隻是程序員的古怪習慣? REST API避免URL中有趣的字符是一種很好的做法嗎?

+5

可能的重複[在網址中%符號的含義是什麼?](http://stackoverflow.com/questions/18302178/what-do-signs-mean-in-a-url) – Quentin

回答

1

%20意味着一個space字符,它只是Percent-Encoding,也被稱爲URL Encoding

URL中不允許使用某些字符,如space characteres。
如果URL包含這些字符,則需要對其進行正確編碼。

引述RFC 3986約統一資源標識符(URI):

A-百分號編碼機制被用來表示在一個 分量的數據八位位組時該八位組的對應的字符是外 允許集或被用作 組件的分隔符或內部。編碼百分比的八位字節編碼爲字符 三聯體,由百分號字符「%」組成,後跟兩個表示該八位字節數值的十六進制數字。例如,對於 示例,「%20」是二進制字節 「00100000」(ABNF:%x20)的百分比編碼,其在US-ASCII中對應於空間 字符(SP)。

1

這是URL中不允許使用的字符的URL編碼。 %20是一個空格。

+0

因此, REST API會使用像%20這樣的字符? – user781486

+1

我認爲使用它們並不違法,但是,因爲這會降低可讀性,所以最好避免使用它。你必須記住%20不是一個字符,而是它在一個url中的編碼。 –

相關問題