首先羞反,根據(jù)url得到ip地址
瀏覽器對這個URL的緩存進行查詢,先在瀏覽器緩存中查詢昼窗,沒有找到記錄后再在本機hosts文件中查詢,仍然沒有找到唆途,再去ISP電信服務商那里查詢掸驱,最后就來到了萬維網(wǎng)DNS域名服務系統(tǒng),開始進行域名的遞歸搜索亭敢,首先搜索一級域名图筹,然后是二級等等,直到找到相關記錄远剩,把該域名解析成ip地址,通過ip地址找到服務器锥余。
其次痢掠,客戶端和服務器建立連接
找到服務器后,告訴服務器要進行資源的請求足画,這其中又涉及到http協(xié)議的內(nèi)容,http協(xié)議是一個無狀態(tài)医舆,無連接的協(xié)議象缀,全稱是超文本傳輸協(xié)議,無狀態(tài)指通信之間不會存儲對方的任何內(nèi)容央星,無連接指,一次數(shù)據(jù)傳輸后后莉给,不能持續(xù)連接狀態(tài)進行資源的互相傳遞凿蒜,這就特別像是打電話的過程胁黑,無狀態(tài)是指,沒有來電顯示的電話漂洋,無連接是指力喷,某方給某方傳了一條信息后立刻終止連接。
不過現(xiàn)在廣泛應用的http1.1弟孟,2.0已經(jīng)支持了新的技術,長連接庭猩。
知道了http協(xié)議,客戶端和服務器可以相互進行通信了蔼水,我們便要知道录肯,服務器和瀏覽器間傳輸遵從的協(xié)議,TCP協(xié)議论咏,客戶端和服務器建立連接的過程,這就需要TCP/IP的三次握手和四次揮手的過程穿剖。
這里卦溢,題主搜了一篇自以為總結(jié)的不錯的博文TCP/UDP詳解
三次握手四次揮手
之后,瀏覽器就可以很愉快地把請求頭發(fā)送給服務器了
這里又牽扯到請求頭的一些知識點单寂,請求頭是在瀏覽器端由瀏覽器主動發(fā)出的一些代碼,在請求頭里蘸劈,瀏覽器把自己的版本信息尊沸,請求的url贤惯,協(xié)議的版本號棒掠,cookie等信息隨著請求頭,一并發(fā)到服務器端烟很,在chrome瀏覽器的代碼調(diào)試里我們可以找到請求頭的代碼。
服務器在收到請求頭之后恤筛,便返回一個響應頭芹橡,其中有傳輸內(nèi)容的編碼類型毒坛,時間林说,返回的cookie信息等。隨之返回的是從瀏覽器端請求的html主頁面(一般是index.html)蝌数,瀏覽器拿到這個頁面后度秘,瀏覽器引擎便開始對這個頁面進行從上到下的依次解析饵撑。每需要一個資源內(nèi)容,比如css滑潘,js,圖片追逮,都需要再次進行以上的過程進行資源的請求粹舵。
接著钮孵,我們再來介紹一下cookies
由于http是無狀態(tài)協(xié)議眼滤,導致服務器和瀏覽器的傳輸不能保存兩者之間的狀態(tài),但是瀏覽器又會記錄到曾經(jīng)訪問過的一些網(wǎng)站信息漾唉。這就需要瀏覽器的本地存儲機制。
瀏覽器的本地存儲有幾種方式赵刑,cookies,localstorage,sessionstorage.
這里我們可以再擴展一下知識丐箩,這三者的區(qū)別恤煞?
localstorage和sessionstorage只能用于瀏覽器本地存儲,而cookies除了瀏覽器端之外也可以在服務器存儲