用戶打開瀏覽器彪杉,輸入 baidu.com,頁面展示百度首頁牵咙。整個過程發(fā)生了什么派近?
一、在瀏覽器輸入URL
在開始講述這一過程前洁桌,我們需要了解一下URL是什么渴丸?
我們在瀏覽器的地址欄里輸入的網(wǎng)站地址叫做URL。就像每家每戶都有一個門牌地址一樣另凌,每個網(wǎng)頁也都有一個Internet地址谱轨。當(dāng)你在瀏覽器的地址框中輸入一個URL或是單擊一個超級鏈接,URL就確定了要瀏覽的地址吠谢。
URL (Uniform Resource Locator)是統(tǒng)一資源定位符土童,對可以從互聯(lián)網(wǎng)上得到的資源(圖片、文件等)的位置和訪問方法的一種簡潔的表示工坊,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址献汗。互聯(lián)網(wǎng)上的每個文件都有一個唯一的URL王污,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它罢吃。
基本的URL包含協(xié)議(或稱模式)、服務(wù)器名稱(或IP地址)昭齐、路徑和文件名尿招。
協(xié)議包括http、https阱驾、ftp就谜、file.
1.http是互聯(lián)網(wǎng)應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,目的是為了提供一種發(fā)布和接受HTML頁面的方法里覆。
協(xié)議的功能:
- 是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議丧荐。
- HTTP是客戶端瀏覽器或其他程序與Web服務(wù)器之間的應(yīng)用層通信協(xié)議。
- 瀏覽器通過超文本傳輸協(xié)議(HTTP)租谈,將Web服務(wù)器上站點的網(wǎng)頁代碼提取出來,并翻譯成漂亮的網(wǎng)頁。
2.https是安全版的http割去,用于安全的HTTP數(shù)據(jù)傳輸窟却。
3.文件傳輸協(xié)議(英文:File Transfer Protocol,縮寫:FTP)是用于在網(wǎng)絡(luò)上進(jìn)行文件傳輸?shù)囊惶讟?biāo)準(zhǔn)協(xié)議呻逆,使用客戶/服務(wù)器模式夸赫。FTP有著極高的延遲。
4.file----當(dāng)?shù)仉娔X或網(wǎng)上分享的文件咖城。
二茬腿、域名解析
對于http://baidu.com的URL,瀏覽器不知道baidu.com到底是什么宜雀,需要查找baidu.com網(wǎng)站所在的服務(wù)器的IP地址切平,才能找到目標(biāo)。
- baidu.com就是域名辐董。
IP地址
- 每個處于互聯(lián)網(wǎng)的設(shè)備都有IP地址悴品。
- 局域網(wǎng)的IP跟公網(wǎng)的IP是有差別的。
- 127.0.0.1代表本機(jī)IP简烘。
域名解析流程
1苔严、瀏覽器緩存——瀏覽器會緩存DNS記錄記錄一段時間。
2孤澎、系統(tǒng)緩存——從本地電腦Host文件查找是否有該域名和對應(yīng)IP届氢。
3、路由器緩存——一般路由器也會緩存域名的信息覆旭。
4退子、ISP DNS緩存——比如到電信的DNS差找緩存。
5姐扮、如果都沒有找到絮供,則向根域名服務(wù)器查找域名對應(yīng)的IP,根域名服務(wù)器把請求抓發(fā)到下一級茶敏,找到IP壤靶。
電腦上不了網(wǎng)了
修改dns為8.8.8.8(谷歌服務(wù)器)或114.114.114.114。
dns劫持是根域名服務(wù)器中的域名對應(yīng)的IP被改了惊搏。
三贮乳、服務(wù)器處理
你的Request被baidu的服務(wù)器接收。
服務(wù)器是一臺安裝系統(tǒng)的機(jī)器恬惯,比如Linux向拆、windows server 2012,系統(tǒng)里安裝的處理請求的應(yīng)用叫web server 酪耳。
常見的web服務(wù)器有Apache浓恳,Nginx刹缝,IIS,Lighttpd颈将。
四梢夯、瀏覽器處理
baidu的服務(wù)器向你的瀏覽器傳輸HTML字符串,這些字符串被瀏覽器接收后被一句句讀取解析晴圾。
解析到link標(biāo)簽后重新發(fā)送請求獲取CSS颂砸。
解析到script標(biāo)簽后重新發(fā)送請求獲取JS,并執(zhí)行代碼
解析到img標(biāo)簽后發(fā)送請求獲取圖片資源死姚。
五人乓、繪制網(wǎng)頁
- 瀏覽器根據(jù)HTML和CSS計算得到渲染樹,繪制到屏幕上都毒,js被執(zhí)行色罚。