URL的組成部分
scheme:方案名 或者 協議名,比如http、https、ftp等
host:主機名,可以是IP,或者域名
port:端口號,有時候可以省略,瀏覽器等客戶端會依據 scheme 使用默認的端口號,例如 HTTP 的默認端口號是 80,HTTPS 的默認端口號是 443。
path:標記資源所在的位置,默認是/,以"/"開頭
query:key-value的形式,比如https://search.jd.com/Search?keyword=openresty&enc=utf-8&qrst=1
另外:
#fragment”:URI 所定位的資源內部的一個“錨點”或者說是“標籤”,瀏覽器可以在獲取資源後直接跳轉到它指示的位置。
URI的編碼問題:
在 URI 裏只能使用 ASCII 碼
URI 引入了編碼機制,對於 ASCII 碼以外的字符集和特殊字符做一個特殊的操作,把它們轉換成與 URI 語義不衝突的形式,俗稱“轉義”。
比如:空格被轉義成“%20”,“?”被轉義成“%3F”