URL:統一資源定位符,偏重定位,是URI的子集,例如網址。URL必定是URI,但URI 不必定是URL。規則:只能用英文阿拉伯數字某些符號等,若是有文字就必須編碼。css
URI:統一資源標識符,偏重標識,字符串格式規範。web
Http:chrome
一、http客戶端發起請求,建立端口(例:用手機打開瀏覽器網頁,建立到服務器的默認端口80的TCP連接)後端
二、http服務器在端口監聽客戶端請求瀏覽器
三、http服務器向客戶端返回狀態和內容緩存
當咱們輸入網址回車或者按h5刷新時計算機和瀏覽器作的事情:服務器
域名解析: 1、瀏覽器會先搜索自身的DNS緩存,例如a.imooc.com這個域名已經緩存的ip地址,這個緩存的時間只有1分鐘,若有緩存看有沒有過時,若是過時這個解析就結束了。查看chrome的緩存:chrome://net-internals/#dns網站
2、搜索操做系統自身的DNS緩存,瀏覽器沒有找到緩存或緩存已經失效。若是緩存也沒有過時,那解析也到此結束。編碼
3、讀取本地的HOST文件,操做系統自身的DNS緩存也沒有找到。spa
4、瀏覽器發起一個DNS的一個系統調用。向本地主控DNS服務器(通常來講是寬帶運營商提供的)發起的一個域名解析請求。
運營商的DNS服務器:一、寬帶運營商服務器查看自己緩存,查找對應的條目,若是沒有過時就解析成功了
二、運營商服務器替瀏覽器發起一個迭代DNS解析的請求
先找到根域DNS:
拿到com域的ip地址:
·
找到imooc.com這個域的DNS服務器(該服務器由域名的註冊商提供。如萬網、新網等):
imooc.com域的DNS服務器將查找的結果發送給運營商的DNS服務器,這時運營商的DNS服務器拿到了imooc.com這個域名對應的ip地址,將結果返回給操做系統內核,同時也緩存在本身的緩存區。操做系統內核把ip地址返回給瀏覽器。最終瀏覽器拿到了www.imooc.com對應的IP地址。
5、瀏覽器得到域名對應的IP地址後,發起HTTP "三次握手"
瀏覽器以一個隨機端口向服務器的web程序,如ngix80端口發起一個TCP的鏈接請求,這個請求經過層層的路由設備到達服務器端之後進入到網卡,進入到內核的TCP/IP協議棧,可能還須要防火牆的過濾,最終到達web服務端,創建起TCP和IP的鏈接。
三次握手作了什麼:客戶端向服務器
6、TCP/IP鏈接創建起來後,瀏覽器就能夠向服務器發送HTTP請求了。使用了好比說,用HTTP的GET方式請求一個根域裏的一個域名,協議能夠採用HTTP 1.0的一個協議。
7、服務器端接收到了這個請求,根據路徑參數,通過後端的一些處理以後,把處理後的一個結果的數據返回給瀏覽器,若是是網站頁面就會把完整的HTML頁面代碼返回給瀏覽器。
8、瀏覽器拿到了網站頁面完整的HTML代碼,在解析和渲染這個頁面的時候,裏面的js、css、圖片靜態資源,他們一樣是一個個HTTP請求,都須要通過上面的主要的七個步驟。
9、瀏覽器根據拿到的資源對頁面進行渲染,最終把一個完整的頁面呈現給用戶。
HTTP協議的組成:
HTTP頭:發送的是一些附加的信息:內容類型、服務器發送響應的日期、HTTP狀態碼。
正文:就是用戶提交的表單數據。