我遇到了一個有趣的URL,看起來像這樣;爲什麼某些網址有像%20這樣有趣的字符?
http://127.0.0.1:8888//echo/this%20is%20just%20a%20test
這使得REST API看起來很奇怪。是否有一些正當的理由,還是隻是程序員的古怪習慣? REST API避免URL中有趣的字符是一種很好的做法嗎?
我遇到了一個有趣的URL,看起來像這樣;爲什麼某些網址有像%20這樣有趣的字符?
http://127.0.0.1:8888//echo/this%20is%20just%20a%20test
這使得REST API看起來很奇怪。是否有一些正當的理由,還是隻是程序員的古怪習慣? REST API避免URL中有趣的字符是一種很好的做法嗎?
%20
意味着一個space
字符,它只是Percent-Encoding,也被稱爲URL Encoding。
URL中不允許使用某些字符,如space
characteres。
如果URL包含這些字符,則需要對其進行正確編碼。
引述RFC 3986約統一資源標識符(URI):
A-百分號編碼機制被用來表示在一個 分量的數據八位位組時該八位組的對應的字符是外 允許集或被用作 組件的分隔符或內部。編碼百分比的八位字節編碼爲字符 三聯體,由百分號字符「%」組成,後跟兩個表示該八位字節數值的十六進制數字。例如,對於 示例,「%20」是二進制字節 「00100000」(ABNF:%x20)的百分比編碼,其在US-ASCII中對應於空間 字符(SP)。
這是URL中不允許使用的字符的URL編碼。 %20
是一個空格。
因此, REST API會使用像%20這樣的字符? – user781486
我認爲使用它們並不違法,但是,因爲這會降低可讀性,所以最好避免使用它。你必須記住%20不是一個字符,而是它在一個url中的編碼。 –
可能的重複[在網址中%符號的含義是什麼?](http://stackoverflow.com/questions/18302178/what-do-signs-mean-in-a-url) – Quentin