我對編碼的URL感到困惑。編碼的URL不起作用
例如,當我寫我的瀏覽器:
stackoverflow.com/questions
我可以成功地查看頁面。
然而,當我寫:
stackoverflow.com%2Fquestions
我無法查看。
由於%2F的意思是「/」,我想明白爲什麼這不起作用。
我想知道的原因是我得到一個編碼的URL,並且我不知道如何在我收到它之後立即解碼該URL,以避免出現錯誤頁面。
我對編碼的URL感到困惑。編碼的URL不起作用
例如,當我寫我的瀏覽器:
stackoverflow.com/questions
我可以成功地查看頁面。
然而,當我寫:
stackoverflow.com%2Fquestions
我無法查看。
由於%2F的意思是「/」,我想明白爲什麼這不起作用。
我想知道的原因是我得到一個編碼的URL,並且我不知道如何在我收到它之後立即解碼該URL,以避免出現錯誤頁面。
/
是percent-encoding reserved characters
之一。 URL使用percent-encoding reserved characters
來定義它們的語法。只有當這些字符不在URL中的特殊角色中使用時,它們才需要進行編碼。百分比編碼
保留字符:
! * ' ( ) ; : @ & = + $ , / ? # [ ]
%21 %2A %27 %28 %29 %3B %3A %40 %26 %3D %2B %24 %2C %2F %3F %23 %5B %5D
我現在完全理解它。我想要做的是,我試圖在查詢字符串(如www.domain)中傳遞一個URL。COM?retUrl = www.anotherdomain.com%3Fparameter%3D =價值。實際上,我想在anotherdomain.com中收到我的參數值。有沒有辦法做到這一點? – Mikae
例如,您可以通過執行http:// www.example.com/example /到http:// www.domain.com/page.php:http://www.domain。 COM/page.php文件?theURL = HTTP%3A%2F%2Fwww.example.com%2Fexample%2F'。 – Anne
其實,domain.com是一種我無法控制的服務,www.example.com是我控制的東西。 domain.com將瀏覽器重定向到example.com。而且,我想在我的example.com頁面(www.example.com?parameter=value)中收到一個參數。這就是我在考慮使用URL編碼/解碼的原因。你有什麼想法我可以繼續? – Mikae
%2F
是URL逃脫/
。這意味着,將/
視爲字符,而不是目錄分隔符。
在本質上,它正在尋找域stackoverflow.com/questions
,而不是域stackoverflow.com
與路徑questions
。
%2F是當你想在參數中包含/但不希望瀏覽器導航到不同的目錄/路由時寫的。
所以,如果你有作爲查詢字符串參數傳遞的文件路徑 '根/子目錄',你想編碼,如:
http://www.testurl.com/page.php?path=root%2Fsubdirectory
而不是
URL編碼例如使用用於編碼來自HTML表單的字符串URL參數,該表單包含特殊字符,如'/'。編寫「stackoverflow.com%2Fquestions」是錯誤的,在這種情況下,'/'是URL本身的一部分,並且不得編碼。
%2F
是一個轉義字符實體 - 意味着它將包含在名稱中,而不是字符/
,它表示目錄層次結構,as specified in RFC 1630, page 8。
看完答案後我完全理解。我想要做的是,我試圖在查詢字符串中傳遞一個URL,例如www.domain.com?retUrl=www.anotherdomain.com%3Fparameter%3D=value。實際上,我想在anotherdomain.com中收到我的參數值。有沒有辦法做到這一點? – Mikae