URL與資源(http權威指南第二章)

URL與資源

本章將介紹:
- URL語法,以及各種URL組件的含義及其所做的工作
- 很多web客戶端都支持的URL快捷方式,包括相對URL和自動擴展URL
- URL編碼和字符規範
- 支持各種因特網信息系統的常見URL方案
- URL的未來
1. 瀏覽因特網資源
大多數URL都有同樣的:“方案://服務器位置/路徑“結構
URL未用戶以及他們的瀏覽器提供了找到信息所需的所有條件,URL定義了用戶所需的特定資源,它位於何處以及如何獲取它
2. URL的語法
URL隨着方案的不同而有所不同
URL的通用格式如下

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>  
  • 方案
    方案告訴負責解析URL的應用程序應該使用什麼協議,用冒號與其它部分分隔,大小寫無關的
  • 主機與端口
    主機組件標示了因特網上能夠訪問資源的宿主機器(主機名或IP地址),端口組件標示了服務器正在監聽的網絡端口,對下層使用了TCP協議的http來說,默認端口是80
  • 用戶名和密碼
    很多服務器都要求輸入用戶名和密碼纔會允許用戶訪問數據,ftp服務器就是這樣
ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu    
  • 路徑
    路徑組件說明了資源位於服務器的什麼地方,通常很像一個分級的文件系統路徑
  • 參數
    爲了嚮應用程序提供它們所需的輸入參數,以便正確的與服務器進行交互,URL中有一個參數組件,它們爲應用程序提供了訪問資源所需的附加信息
ftp://prep.ai.mit.edu/pub/gnu;tpye=d

路徑組件可以分爲若干路徑段,每段都可以有自己的參數

http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true
  • 查詢字符串
    很多資源,比如數據庫服務,都是可以通過提問題或進行查詢來縮小所請求資源類型範圍的
http://www.joes-hardware.com/inventory-check.cgi?item=12731

?右邊的是查詢組件,URL的查詢組件和標示網關資源的URL路徑組件一起別發送給網關資源
- 片段
爲了引用部分資源或資源的一個片段,片段組件表示一個資源內部的片段。http服務器通常只處理整個對象,瀏覽器從服務器獲得整個資源之後,會根據片段來顯示你感興趣的那部分資源

http://www.joes-hardware.com/tools.html#drills
  1. URL快捷方式
    web客戶端可以理解並使用幾種URL快捷方式,包括相對URL和URL的自動擴展

    • 相對URL
      URL有兩種方式:絕對的和相對的。絕對URL包含訪問資源所需的全部信息
      相對URL是不完整的,要從相對URL中獲取訪問資源的全部信息,就必須相對於一個被稱爲基礎的URL進行解析
      相對URL是URL的一種便捷縮略記法
      相對URL爲保持一組資源的便捷性提供了一種便捷的方式,可以在半一一組文件的同時,仍然保持鏈接的有效性
      由相對URL轉換到絕對URL的第一步就是找到基礎URL,基礎URL由三種方式:
    • 在資源中顯示提供
      有些資源會顯示指定基礎URL,比如HTML文檔中可能包含了一個定義了基礎URL的HTML標記
    • 封裝資源的基礎URL
      沒有顯示指定基礎URL,可以將該資源的URL作爲基礎
    • 沒有基礎URL
      這通常意味着有一個相對URL,但有時可能是一個不完整或損壞的URL

    • 自動擴展URL
      用戶不需要輸入完整的URL,瀏覽器會自動擴展
      這些擴展有兩種方式:

    • 主機名擴展
      只要一些小提示,瀏覽器就可以將我們輸入的主機名擴展爲完整的主機名
    • 歷史擴展
      將以前用戶訪問過的URL歷史保存起來,當我們輸入URL是,將輸入URL與歷史記錄中的URL的前綴進行匹配,並提供一些完整的選項供我們選擇
  2. 各種令人頭疼的字符
    URL是可移植的,能被因特網任意協議安全傳輸,而且是可讀的,完整的

    • URL字符集
      ASCII和轉義序列
    • 編碼機制
      通過“轉義”表示法來表示不安全的字符,包含一個百分號(%),後面跟着兩個表示字符的ASCII碼的十六進制,例如:
    • ~ 0x7E http://www.joes-hardware.com/%7Ejoe
    • 空格 0x20 http://www.joes-hardware.com/more%20tools.html
    • % 0x25 http://www.joes-hardware.com/100%25satisfaction.html

    • 字符限制
      在URL中,有幾個字符被保留起來,有着特殊的含義

  3. 方案
    • http
      超文本傳輸協議方案,沒有用戶名和密碼,默認端口是80
    • https
      與http唯一的區別在於https使用了網景的SSL,提供了端到端的加密機制,默認端口是443
    • mailto
      mailto URL指向的是E-mail地址
    • ftp
      文件傳送協議URL可以從ftp服務器上下載或向其上載文件
    • rtsp,rtspu
      RTSP URL是可以通過實時流傳輸協議解析的音/視頻媒體資源的標識符
    • file
      方案file表示一臺指定主機上可直接訪問的文件
    • news
      方案news用來訪問一些特定的文章或新聞組
    • telnet
      方案telnet用於訪問交互式業務
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章