人生就像一列開(kāi)往墳?zāi)沟牧熊?chē)棘街,路途上會(huì)有很多站矮男,很難有人至始至終陪你走完全程移必,當(dāng)陪你的人要下車(chē)時(shí),即便不舍毡鉴,也要心存感激崔泵,然后揮手告別。---sunnyhuang
URL
URL統(tǒng)一資源定位符猪瞬,用于互聯(lián)網(wǎng)上不同的資源的標(biāo)識(shí)憎瘸,就像不同的人有不同的身份證一樣。
URL的組成
URL的組成
- 協(xié)議
- 域名 (有時(shí)候也是ip,)
- 端口號(hào)(數(shù)字表示陈瘦,若為HTTP的默認(rèn)值“:80”可省略)
- 路徑(以“/”字符區(qū)別路徑中的每一個(gè)目錄名稱)
- 查詢(GET模式的窗體參數(shù)幌甘,以“?”字符為起點(diǎn),每個(gè)參數(shù)以“&”隔開(kāi),再以“=”分開(kāi)參數(shù)名稱與數(shù)據(jù)锅风,通常以UTF8的URL編碼酥诽,避開(kāi)字符沖突的問(wèn)題)
在瀏覽器輸入url后的訪問(wèn)
1. 域名解析
瀏覽器會(huì)把輸入的域名解析成對(duì)應(yīng)的ip,解析分為幾部分進(jìn)行皱埠。
- 查看瀏覽器內(nèi)部緩存肮帐,如果查到域名對(duì)應(yīng)的ip,就發(fā)送和接受參數(shù)和數(shù)據(jù)
- 查看本機(jī)的host文件边器,瀏覽器會(huì)在本機(jī)的hosts文件查看是否有對(duì)應(yīng)的ip服務(wù)器地址训枢。
- 查看本地路由器的DNS緩存,找到對(duì)應(yīng)的ip
- 查看網(wǎng)絡(luò)服務(wù)商中DNS服務(wù)器
- 查詢根域名下是否存在忘巧。
上述5步找到對(duì)應(yīng)的ip地址后 - 詢到目標(biāo)IP地址后,則開(kāi)始建立 TCP 三次握手 ,與目標(biāo)服務(wù)器建立連接肮砾。
- 通過(guò)規(guī)定的協(xié)議(http)向目標(biāo)主機(jī)發(fā)送請(qǐng)求
2. 服務(wù)器接收到請(qǐng)求和返回?cái)?shù)據(jù)
服務(wù)器:安裝了系統(tǒng)和web-server的主機(jī),可以理解為一臺(tái)電腦袋坑,安裝了系統(tǒng)和軟件來(lái)處理數(shù)據(jù)(硬件)
- 服務(wù)器接收到了瀏覽器發(fā)送的請(qǐng)求后仗处,根據(jù)某個(gè)協(xié)議,通過(guò)web-server把瀏覽器發(fā)送的數(shù)據(jù)進(jìn)行打包(包含請(qǐng)求頭枣宫,ip地址婆誓,請(qǐng)求路徑和查詢參數(shù)等)
- web-server把數(shù)據(jù)打包后,發(fā)送給網(wǎng)站代碼(比如django也颤、flask洋幻、node.js等后端服務(wù))
- 后端服務(wù)軟件會(huì)根據(jù)路徑和查詢參數(shù)進(jìn)行相應(yīng)處理,返回給瀏覽器對(duì)應(yīng)的數(shù)據(jù)包(包括http協(xié)議組成的代碼翅娶。里面包含頁(yè)面的布局文留、文字。數(shù)據(jù)也可能是圖片竭沫、腳本程序燥翅,反應(yīng)頭,反應(yīng)數(shù)據(jù)蜕提,請(qǐng)求頭等)
3. 瀏覽器的接受數(shù)據(jù)和頁(yè)面渲染
- 瀏覽器接收到返回的數(shù)據(jù)包森书,根據(jù)瀏覽器的渲染機(jī)制對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行渲染。
- 渲染后的數(shù)據(jù)谎势,進(jìn)行相應(yīng)的頁(yè)面呈現(xiàn)和腳步的交互凛膏。
上訴3大點(diǎn)1. 域名解析。2.服務(wù)器接受脏榆。3.瀏覽器的渲染就是用戶輸入一個(gè)域名到頁(yè)面呈現(xiàn)的內(nèi)容猖毫。
解析服務(wù)器中網(wǎng)站代碼處理處理的流程
1.MOV模型
MVC模型(model-view-controller
主要是第三步到第七步解析
- 用戶的請(qǐng)求數(shù)據(jù)通過(guò)控制器交給模型來(lái)處理(圖中的2)
- 模型根據(jù)用戶的請(qǐng)求數(shù)據(jù),在數(shù)據(jù)庫(kù)中查詢须喂,調(diào)用相應(yīng)的數(shù)據(jù)返回給控制器(圖中的345)
- 控制器得到數(shù)據(jù)庫(kù)返回?cái)?shù)據(jù)后吁断,交給視圖模板填充形成頁(yè)面的模板(頁(yè)面基本的代碼成型)
- 視圖模板填充好后典唇,把數(shù)據(jù)反饋給控制器
- 控制器將數(shù)據(jù)反饋給瀏覽器
- 瀏覽器得到數(shù)據(jù)后,進(jìn)行相應(yīng)的渲染胯府,呈現(xiàn)給用戶介衔。