一.在瀏覽器輸入U(xiǎn)RL
URL: 統(tǒng)一資源定位符,用于定位互聯(lián)網(wǎng)上的資源
http夜只、https、ftp蒜魄、file 協(xié)議
file協(xié)議是主要用于訪問本地計(jì)算機(jī)中的文件扔亥,基本的格式:file:///文件路徑。
http協(xié)議是是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議谈为。
https協(xié)議是一種網(wǎng)絡(luò)安全傳輸協(xié)議旅挤,類似于經(jīng)過一個(gè)加密后安全的http協(xié)議。
‘//’表示與當(dāng)前頁面協(xié)議保持一致
URL中默認(rèn)端口號為80
二.域名解析
域名是由一串用點(diǎn)分隔的名字組成的Internet上某一臺計(jì)算機(jī)或計(jì)算機(jī)組的名稱峦阁。
IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式谦铃,它為互聯(lián)網(wǎng)上的每一個(gè)網(wǎng)絡(luò)和每一臺主機(jī)分配一個(gè)邏輯地址,以此來屏蔽物理地址的差異榔昔。
DNS是因特網(wǎng)的一項(xiàng)核心服務(wù)驹闰,它作為可以將域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫,能夠使人更方便的訪問互聯(lián)網(wǎng)撒会,而不用去記住能夠被機(jī)器直接讀取的IP地址數(shù)串嘹朗。
a>域名解析流程
1.瀏覽器緩存:之前瀏覽過這個(gè)URL,瀏覽器會緩存DNS記錄一段時(shí)間诵肛,下次訪問可以直接提取地址訪問屹培。
2.系統(tǒng)緩存:第一次打開一個(gè)網(wǎng)址默穴,瀏覽器是沒有緩存的,查找系統(tǒng)緩存褪秀,從Host文件查找是否有該域名和對應(yīng)的IP蓄诽。
Mac:在Hostbuddy中找host文件
Windows:在C:\Windows\System32中找host文件
3.路由器緩存:若在HOST中沒有找到相應(yīng)IP地址,路由器中一旦有人登陸過這個(gè)網(wǎng)址就會有緩存域名信息媒吗。
4.ISP DNS 緩存:若在路由器中沒有緩存仑氛,則到 互聯(lián)網(wǎng)服務(wù)提供商的域名系統(tǒng)處尋找。比如到電信的DNS 上查找緩存闸英。
5.如果都沒有找到锯岖,則向根域名服務(wù)器查找域名對應(yīng)IP,根域名服務(wù)器把請求轉(zhuǎn)發(fā)到下一級甫何,直到找到IP出吹。
b>相關(guān)問題及回答
1.為什么發(fā)明域名,而不用IP辙喂?
域名能夠使人更方便的訪問互聯(lián)網(wǎng)捶牢,而不用去記住能夠被機(jī)器直接讀取的IP地址數(shù)串,IP是一串?dāng)?shù)字代表性不強(qiáng)加派,一個(gè)網(wǎng)站可能對應(yīng)多個(gè)IP叫确。
2.電腦上不了網(wǎng),為什么修改dns為8.8.8.8 或者114.114.114.114?
8.8.8.8是google提供的dns服務(wù)器芍锦,打不開網(wǎng)站可能是環(huán)節(jié)中找不到IP竹勉,若把dns直接改為8.8.8.8則不從以上的那些路徑一一查找,而是直接從google服務(wù)器查找域名所對應(yīng)的IP娄琉。同理改為114.114.114.114(國內(nèi)的一個(gè)服務(wù)商)也一樣次乓。
3.什么是dns劫持?
dns劫持:攻擊根域名服務(wù)器孽水,會使所查找的IP變更為一個(gè)惡意網(wǎng)站IP票腰,具有很大危害。
三.服務(wù)器處理
服務(wù)器是一臺安裝系統(tǒng)的機(jī)器女气,常見的系統(tǒng)如Linux杏慰、windows server 2012。
系統(tǒng)里安裝的處理請求的應(yīng)用叫 Web server炼鞠。
web服務(wù)器(例如Apache缘滥,Nginx,IIS谒主,Lightpd)相當(dāng)于一個(gè)管理者朝扼,接受用戶的請求交給網(wǎng)站代碼,或者接受請求反向代理到其他服務(wù)器
四.網(wǎng)站處理流程
MVC 模型(model)-視圖(view)-控制器(controller)
路由進(jìn)行匹配然后把信息傳給控制器霎肯,控制器通過語言調(diào)用模型得到數(shù)據(jù)擎颖,將數(shù)據(jù)填入html的模板榛斯,模型則是操作數(shù)據(jù)庫,最終網(wǎng)站從控制器得到模板搂捧。
隨后瀏覽器將進(jìn)行處理驮俗,HTML字符串被瀏覽器接受后被一句句讀取解析并且瀏覽器根據(jù) HTML 和 CSS 計(jì)算得到渲染樹,繪制到屏幕上异旧,js 會被執(zhí)行意述。例如:
解析到link 標(biāo)簽后重新發(fā)送請求獲取css
解析到 script標(biāo)簽后發(fā)送請求獲取 js,并執(zhí)行代碼
解析到img 標(biāo)簽后發(fā)送請求獲取圖片資源