導引
2010年2月,科技網絡雜志Read Write web發表了一篇題為“Facebook想成為你唯一真正的登錄用戶”的文章。這篇文章是關于Facebook和美國在線之間的一項新的合作,旨在讓用戶更容易地登錄Facebook。考慮到接下來發生的事情,這很諷刺。
在文章發表后不久,這篇文章莫名其妙地在谷歌中以“Facebook登錄”的搜索詞排名第一。所以當成千上萬的人開始登陸這個Read - Write網頁,以為這是Facebook的登錄頁面,他們繼續登錄!當然,他們無法登錄,因為這不是他們所在的Facebook網站!請閱讀下面的評論,看看當登錄細節不起作用時人們的反應!
這種情況有什么問題嗎?是誰的錯,他們搜索了Facebook登錄,然后到達了一個不是Facebook登錄頁面的網站?有些人認為谷歌是罪魁禍首,因為這些人已經熟悉了用這種方式登錄Facebook,而且谷歌的結果改變了,他們不應該知道更多嗎?另一些人則認為,責任在于相關人員,因為他們從來沒有進行過最基本的安全檢查……呃,來檢查URL。
他們沒有檢查網址?
顯然不是。啊?是網絡釣魚詐騙?——閑話少敘,進入正題。
認識URL
什么是URL?
URL代表統一資源定位符,或者換句話說,在線資源的網址,即網站或文檔。
Web瀏覽器在地址欄中顯示URL
你訪問的每個網站都有一個URL。以下URL指向本文:https://doepud.co.uk/blog/foreny-of-a-url。
創建URL的方式有兩種
1)在點擊網頁、書簽或電子郵件中的鏈接后,
2)直接在地址欄中輸入URL即可創建URL
協議連接到域名,域名連接到文件路徑…
以本文的URL為例,您應該理解URL的三個基本部分:協議、域名和路徑。
并且,基于來自馬特卡茨的URL定義的示例URL,這里是一個更復雜的URL示例:
URL剖析
從上圖可見,URL構成分為:協議、子域名、域名、端口、路徑、查詢、參數以及片段等內容構成。
下面分別介紹。
1)協議:
該協議聲明了web瀏覽器在發送或獲取web頁面或文檔時應該如何與web服務器通信。最常見的協議是http,它代表超文本傳輸協議。
另一個常見的協議是https,它代表超文本傳輸協議安全。你會在安全頁面上看到這個,比如購物網站和登錄頁面。如果你訪問的網站需要輸入敏感信息,比如銀行信息和密碼,確保協議聲明為https。這意味著你的瀏覽器會對你提供的任何信息進行加密,這樣在傳輸過程中試圖攔截網頁的釣魚者就無法理解。
您不太可能看到的一些協議包括ftp(文件傳輸協議)pop(郵局協議)、smtp(簡單郵件傳輸協議)和imap (Internet消息訪問協議)。如果你想知道更多,這里有一個協議列表。
2)子域名
子域名是主域名的一個子分支。例如,mail.doepud.com和calendar.doepud.com是域名doepud.com的子域名。
3)域名
域名是互聯網上標識網站的唯一參照,例如doepud.co.uk。域名總是包括頂級域名(top-level domain,TLD),在Doepud的例子中是uk。co部分是商業和合并的縮寫。.co.uk被稱為二級域名(second-level domain,SLD)。
4)端口
端口號很少在url中見到,但總是必需的。在URL中聲明時,它緊跟在TLD之后,以冒號分隔。如果沒有聲明,并且大多數情況下協議是http,則使用端口80。對于https(安全)請求,使用端口443。
5)路徑
路徑通常指的是web服務器上的文件或目錄,例如/directory/file.php。
有時候文件名不會被指定,例如https://doepud.co.uk/blog/,所以網絡瀏覽器會自動在/blog/文件夾中查找名為index或default的文件。如果兩者都不能找到,服務器通常會返回一個404 Not found錯誤。
6)查詢
查詢通常出現在動態頁面(從數據庫或用戶生成內容生成的頁面)的URL中,并由一個問號后跟一個或多個參數表示。查詢直接跟隨域名、路徑或端口號后。
例如,看看這個URL,這是由谷歌產生的,當做搜索單詞URL:
http://www.google.co.uk/search?q=url&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-GB:official&client=firefox-a.
其中查詢部分為:
?q=url&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-GB:official&client=firefox-a.
7)參數
參數是在URL的查詢字符串中找到的信息片段。參考上面的谷歌查詢,參數跟在問號后面,并由&字符分隔,因此可以單獨理解它們,并用于顯示頁面上的內容。這些參數是:
- q=url
- ie=utf-8
- oe=utf-8
- aq=t
- rls=org.mozilla:en-GB:official
- client=firefox-a
8)片段
片段是一個內部頁面引用,有時稱為命名錨。它通常出現在URL的末尾,以(#)字符和標識符開頭。它指的是網頁中的一個部分。
更多閱讀
URL(Uniform Resource Locator):http://en.wikipedia.org/wiki/Uniform_Resource_Locator
URL縮短化: http://en.wikipedia.org/wiki/URL_shortening