詳解URL組成及閒聊我國的雪人計劃
什麼是URL?
URL,即統一資源定位符,它是一種URI,是可以從網際網路上的資源的位置和訪問方法的一種簡潔的表示,網際網路上的每個檔案都有一個唯一的URL,它包含的資訊指出檔案的位置以及瀏覽器應該怎麼處理它。
由哪些部分組成?
它的格式為:scheme://login:password@address:port/path/to/resource?query_string#fragment
即:協議/使用者和密碼/域名和埠/層及檔案路徑/查詢字串/片段ID
Scheme:指定使用的傳輸協議,其中最常見的是http協議,它也是應用最廣的協議,除此之外還有file(本地檔案傳輸協議),mailto(電子郵件),thunde、ed2k(下載資源)。
// : URL層級URL標記符號,可以省略。
login:password:訪問資源的身份驗證,屬於可選選項,瀏覽器預設以匿名方式訪問資源。很多伺服器要求輸入使用者名稱和密碼才會允許使用者訪問資料,如FTP。
address:完整的層級URL必須有一個域名、ipv4或者ipv6地址作為請求伺服器的位置,域名不區分大小,ipv6需要在方括號中。
Port:伺服器埠是URL中可選內容,在沒有指定時,預設訪問標準埠,基本上瀏覽器支援的協議都會有關聯的預設埠。
/path/to/resource:層級檔案路徑,這一結構來源於UNIX目錄語義。
?query_string:查詢字串 只要負責將一系列的非層級格式的任意引數傳遞給伺服器 引數之間用 " &" 連線,每個引數名與值之間用 " = " 隔開。
#fragmen:片段ID,值不會傳遞給伺服器,只指向html頁面,一般用來跳到a標籤的錨鏈接。
步驟
1、提取協議名:瀏覽器接受到URL後會查詢第一個“ :”,找到左邊的便是協議名。
2、去除層級識別符號:字串//跟在協議名後面,如果發現有該字元會跳過,如果沒有就不管了,所以http:www.baidu.com也是可以訪問的。
3、獲取授權資訊部分:緊接著會依次掃描URL,以“ / ”、“ ?”、“ # ”哪個先出現為準來擷取URL,如果存在認證資訊,提取出來再查詢@符號,如果找到,@左邊是登陸認證資訊,右邊是是目標地址資訊。
4、提取目標地址:目標地址資訊第一個:分開的就是主機名和埠號。
5、確認路徑:在目標地址結尾跟著一個/,接下來掃描“ ?”和“ # ”直至結尾,哪個先出現便以哪個為準,截取出來中間的路徑便是路徑資訊。
6、提取查詢字串:如果存在“ ?”,便會掃描#或者字串結尾,中間部分便是查詢欄位。
7、提取片段ID:如果成功解析完上一條資訊,它最後還跟著#號,那麼這個符號到字串結尾便算片段ID了。
另外,一般要訪問伺服器上的資源時,我們都要輸入伺服器的IP來查詢,但為什麼現在普遍是在使用域名呢?這就是DNS協議了,只是上面的知識已經夠枯燥的了,本章就不再細說DNS協議,只是想聊些更有趣的。
根域名伺服器及雪人計劃
根伺服器主要用來管理網際網路的主目錄,即域名對應IP的表單,全世界只有13臺(面向IPV4)(這13臺根域名伺服器名字分別為“A”至“M”),1個為主根伺服器在美國,其餘12個均為輔根伺服器,其中9個在美國,歐洲2個,亞洲1個位於日本。
在國外,許多電腦科學家將根域名伺服器稱作“真理”(TRUTH),足見其重要性。換句話說——攻擊整個因特網最有力、最直接,也是最致命的方法恐怕就是攻擊根域名伺服器了。
美國控制了IPv4根伺服器,就等於控制了全球的域名和IP地址,美國一直利用其壟斷資源的優勢,自己擁有50%的IP地址,卻拒絕分配使用者更多IP地址給中國,讓中國佔全球20%的網際網路使用者只擁有5%的IP地址。在美國一個人可以分配6個IP地址,中國卻是26人共享一個IP。這讓中國作為網際網路大國感到氣憤和無奈。如果哪天美國遮蔽中國網際網路的域名和IP,那麼中國的域名和IP將會無法訪問,整個網際網路將會癱瘓。
“雪人計劃 (Yeti DNS Project)”是基於全新技術架構的全球下一代網際網路(IPV6)跟伺服器測試和運營實驗專案,旨在打破現有的根伺服器困局,為下一代網際網路提供更多的根伺服器解決方案,由中國下一代網際網路工程中心領銜發起。截至2017年11月27日,“雪人計劃”已完成全球25臺IPv6根伺服器架設,其中中國部署4臺。雪人計劃 打破了中國沒有根伺服器的歷史,結束了作為全球擁有最多網際網路使用者、網際網路訪問量最大的國家,在IPv4時代不得不受美國控制的屈辱歷史。
根伺服器是國際網際網路最重要的戰略基礎設施,是網際網路通訊的“中樞”。“雪人計劃”作為一個實驗專案,目的並不在於完全改變網際網路的運營模式,而在於為真正實現全球網際網路的多邊共治提供一種解決方案。此外,“雪人計劃”通過聯合全球機構來做測試和試運營,掃清技術上的障礙,不僅可以爭取更多支持者,還能推動在IETF(國際網際網路工程任務組)內相應的標準化進展。