課程大綱?
一、定義
????????URL即訪問的鏈接,是Uniform Resource Locator的縮寫,譯為"統一資源定位符"。
????????URL是一種URI,它標識一個互聯網資源,并指定對其進行操作或獲取該資源的方法。可能通過對主要訪問手段的描述,也可能通過網絡“位置”進行標識。
二、url組成
URL的一般語法格式(帶方括號的為可選項):
protocol://hostname[:port]/path/[:parameters][?query]#fragment
protocol | 協議。比如http。 |
hostname | 主機名。 |
port | 端口號。若無指定,http默認為80。 |
path | 路徑。 由零或多個“/”符號隔開的字符串,一般用來表示主機上的一個目錄或文件地址。 |
Parameters (很少用) | 用于指定特殊參數的可選項,由服務器端程序自行解釋。 |
query | 查詢,傳遞參數。 可有多個參數,用“&”符號隔開,每個參數的名和值用“=”符號隔開。 如上節課”帶參數的get請求”:http://www.baidu.com/?ie=utf-8&f=8 |
fragment | 信息片段,指定網絡資源中的片段。 類似于文章目錄,比如某網頁文章中多個標題,指定跳轉到某標題內容。 |
????????簡單來說,URL格式有2種格式,區別在于使用域名還是IP:
????????①?{協議名}://{域名}/{路徑}
????????舉例:http://blog.csdn.net/weixin_37846886/article_id=123
????????②?{協議名}://{IP}[:端口號]/{路徑}
????????舉例:http://127.0.0.1:9999/login
三、域名和IP的區別與聯系
????????????????域名和IP一一對應。
3.1為什么使用域名?
????????域名(Domain Name):又稱網域,是由一串用點分隔的名字組成的互聯網上某一臺計算機或計算機組的名稱,用于在數據傳輸時對計算機的定位標識(有時也指地理位置)。
????????由于IP地址不方便記憶,并且不能顯示地址組織的名稱和性質,人們設計出了域名,并通過域名系統(DNS,Domain Name System)來將域名和IP地址相互映射,使人更方便地訪問互聯網,而不用去記住能夠被機器直接讀取的IP地址數串。
3.2?DNS實現域名和IP的映射
????????DNS(Domain Name System):一套從域名到IP的映射系統。
????????一個組織的系統管理機構,維護系統內的每個主機的IP和主機名的對應關系。
????????如果新計算機接入網絡,將這個信息注冊到數據庫中。
????????用戶輸入域名的時候,會自動查詢DNS服務器,由DNS服務器檢索數據庫,得到對應的IP地址。
3.3?域名訪問網站流程?
3.4?CDN加速服務
????????CDN(Content Delivery Network):內容分發網絡。
????????訪問速度會受到網絡傳輸速度的影響,為提升訪問速度,某些服務會在不同區域部署相同的服務器(冗余),根據訪問者的IP識別區域并返回距離最近的服務器IP。
????????CDN工作流程:
????????DNS域名解析的映射有2種:①?{域名:IP};②?{域名:別名(CNAME)}。
????????別名(CNAME)也是一個域名,由特定的CDN服務商提供,同一個服務可能在不同區域分別部署相同服務器,具有不同IP。則該CDN服務商搭建自己的DNS服務器,存儲IP。
????????當DNS解析出別名,會將別名發送至其所屬的CDN專用DNS服務器再進行解析,進行IP分配和返回,供訪問者使用。
????????舉例:如百度在全國各地有服務部署,在北京輸入www.baidu.com進行訪問,域名解析與訪問加速過程如下。
此流程即域名的多級解析,可理解為:
Step1、訪問者發送域名至DNS;
Step2、DNS將請求發送至百度服務集群;
Step3、百度返回距訪問者最近(最快)的服務器IP(如北京服務器IP);
Step4、訪問者訪問返回的IP。
3.5?總結使用域名的優點
①方便訪問者記憶;
②靈活,可更換與域名映射的IP(如切換后端服務);
③安全,可隱藏服務器IP信息,避免服務器受到攻擊等不安全因素;
④提高訪問速度(CDN加速)。
參考文章:
1、《URL格式》
https://baike.baidu.com/item/URL%E6%A0%BC%E5%BC%8F/10056474?fr=aladdin
2、《DNS(域名系統)》
https://blog.csdn.net/dreamnn/article/details/135560891
3、《超清晰的DNS入門指南,看這篇就夠了》
https://zhuanlan.zhihu.com/p/696346689
4、《程序員要搞明白CDN,這篇應該夠了》
https://blog.csdn.net/weixin_44129618/article/details/126501046