日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IE与Chrome对相对URL解析的区别

發布時間:2024/4/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IE与Chrome对相对URL解析的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

問題:在ie瀏覽器中點擊訪問相對URL時,地址欄中的路徑與預期路徑不符導致404錯誤?

URL的組成

  • 協議:http:// https:// ftp:// 在"HTTP"后面的“//”為分隔符
  • 域名:網址,也可以使用IP地址作為域名使用
  • 端口:跟在域名后面的是端口,域名和端口之間使用“:”作為分隔符,如果省略端口將采用默認端口
  • 虛擬目錄:從域名后的第一個“/”開始到最后一個“/”為止,是虛擬目錄部分。虛擬目錄也不是一個URL必須的部分。
  • 文件名:從域名后的最后一個“/”開始到“?”為止,是文件名部分,如果沒有“?”,則是從域名后的最后一個“/”開始到“#”為止,是文件部分,如果沒有“?”和“#”,那么從域名后的最后一個“/”開始到結束,都是文件名部分。文件名部分也不是一個URL必須的部分,如果省略該部分,則使用默認的文件名
  • 參數:從“?”開始到“#”為止之間的部分為參數部分,又稱搜索部分、查詢部分。參數可以允許有多個參數,參數與參數之間用“&”作為分隔符。
  • 錨:從“#”開始到最后,都是錨部分。
  • ?

    ?瀏覽器是如何解析絕對路徑和相對路徑的

    在網頁源代碼中出現的url路徑有可能是以下幾種情況, 瀏覽器分別作不同的處理:

    1) 絕對路徑, 比如: http://www.vinceruan.info/front/cross-domain-process-cookie-session/, 瀏覽器對此url不做任何的處理.

    2)絕對路徑, 類似:www.vinceruan.info/java/optimize-website/, 瀏覽器僅僅是在url前面補上http://

    3)相對路徑:/database/row-format-myisam/, 瀏覽器會在url前面補上host, 變成: http://www.vinceruan.info/database/row-format-myisam/

    4)相對路徑: http-cache/, ?前面不帶/ ,此時瀏覽器做兩種處理,?
    如果你在網頁中明確給出了base標簽, 那么得到的url是 base url + http-cache/,?
    如果沒有給出base標簽,那么瀏覽器試圖自己解析得到base url, 解析方法是根據當前url的最后一個/之前的內容返回作為base url.
    ?因為當前路徑是:http://www.vinceruan.info/front/how-browser-parse-url-relative-absolute/,
    ?瀏覽器分析得到的base url 是:http://www.vinceruan.info/front/how-browser-parse-url-relative-absolute,?
    ?因此最后拿到的url 是http://www.vinceruan.info/front/how-browser-parse-url-relative-absolute/http-cache/,?
    ?這顯然是不正確的, 之所以出錯是因為本站做了seo優化, 網頁url優化成目錄url了,因此應該在網頁中顯示提供base標簽.

    解決辦法:相對路徑前加/

    js獲取訪問路徑 location.pathname

    //假設當前頁面的 URL 是:http://www.xxx.com/test/test.shtml //獲取:/test/test.shtml var path=location.pathname;//設置 location.pathname = "/test/test.shtml";function getContextPath() {var pathName = document.location.pathname;var index = pathName.substr(1).indexOf("/");var result = pathName.substr(0,index+1);return result;} var path = getContextPath();window.location.href = path+"/com/forumAction_list.do";

    ?

    HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的,服務器籍此可以獲得一些信息用于處理。比如從我主頁上鏈接到一個朋友那里,他的服務器就能夠從HTTP Referer中統計出每天有多少用戶點擊我主頁上的鏈接訪問他的網站。
    在JSP中獲取REFERER的方式是:request.getHeader("REFERER");

    轉載于:https://my.oschina.net/u/3160411/blog/838187

    總結

    以上是生活随笔為你收集整理的IE与Chrome对相对URL解析的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。