使用相對(duì)url稠肘,可以引用同一服務(wù)器的其它資源常潮,相對(duì)url缺失的部分,由發(fā)起引用的那個(gè)url自身的信息補(bǔ)齊揖盘。如果url字符串不是以一個(gè)有效的協(xié)議名開始眉厨,后面沒有跟著冒號(hào),又或者沒有那個(gè)有效的“//”分隔符扣讼,那該url就是一個(gè)需要被引用的相對(duì)url缺猛。
相對(duì)url大體大體可以分為5種情況,其解析規(guī)則如下:
(1)有協(xié)議名稱椭符,但沒有域名信息
對(duì)于這種形式的url荔燎,它的協(xié)議,路徑销钝,查詢字符串和片段ID都以它自身為準(zhǔn)有咨,但域名信息的部分,以引用它的那個(gè)頁面地址為準(zhǔn)蒸健。
(2)沒有協(xié)議名座享,但有域名信息
在這種情況下,協(xié)議名稱由原發(fā)起頁面確定似忧,而所有接下來的url信息都取自這個(gè)相對(duì)url渣叛,構(gòu)成完整的url。
(3)沒有協(xié)議名盯捌,沒有域名信息淳衙,但有路徑
這種情況下分為兩種結(jié)果,如果相對(duì)url的開頭不是斜杠饺著,則相對(duì)路徑會(huì)拼接在引用url最右邊的“/”后面箫攀,如果最右邊是文件名,則要砍掉文件名幼衰。另外如果相對(duì)url的開頭確實(shí)是個(gè)斜杠靴跛,則應(yīng)該忽略引用頁面自身的路徑信息,直接把相對(duì)路徑拼在引用url的域名后面渡嚣。
(4)沒有協(xié)議名梢睛,沒有域名信息,沒有路徑识椰,但有查詢字符串
這種情況下扬绪,協(xié)議,域名裤唠,路徑信息全部原封不動(dòng)的從原引用url復(fù)制過來挤牛,查詢字符串和片段ID則來自相對(duì)url。
(5)只有片段ID
只替換片段ID的部分种蘸,其他所有信息全部原封不動(dòng)的從原引用url復(fù)制過來墓赴。