從URL到頁面顯示經(jīng)歷了哪些?
什么是URL?
URL,是指同一的資源定位符,用于定位網(wǎng)絡資源,俗稱網(wǎng)址。
對應協(xié)議,端口號,域名等。
例如,http://www.baidu.com
這就是一個url地址,就是一個網(wǎng)址,它是由http協(xié)議傳輸。
對應常用的傳輸協(xié)議如下’
- http,是指去查找網(wǎng)絡上的某個資源。
- file,是用于定位本地文件的協(xié)議,也就是說用于查找本地資源。
- https,是指一個加密后的安全的http協(xié)議。
這就是URL,也就是網(wǎng)絡查找資源的第一步,輸入網(wǎng)址。
DNS解析?
是指瀏覽器根據(jù)輸入的URL/字符串/資源,查找該字符串對應的域名,在根據(jù)這個域名去查找對應的IP地址。
- 域名?
就是指由數(shù)字,拼音等組成的協(xié)意字符串,比如,baidu.com,這就是百度的域名。 - IP地址?
這個大家都懂得把,就是每臺設備想要上網(wǎng)的話都要有這么一排數(shù)字,比如,192.168.0.1 - 技術點!
如果做手機測試時,在電腦上測試開發(fā)程序沒有問題,但是在手機上如何做測試呢?
用手機與電腦連接到同一個wifi下,再通過手機訪問電腦上的IP地址就可以啦!
解析流程‘
- 瀏覽器緩存
當之前通過該瀏覽器訪問過該IP的話,則首先在瀏覽器緩存區(qū),也就是記憶區(qū)進行查找,如果找到了就返回出結(jié)果。 - 系統(tǒng)緩存
如果該瀏覽器中沒有該記錄的話,那么就要回到本地的HOST文件夾中查找。
HOST緩存作用
是指根據(jù)域名查到對應IP的查找過程。
技術點
HOST緩存區(qū)可以將將服務器網(wǎng)址定位到本地的IP
例如,在開發(fā)過程中,如果想通過瀏覽器訪問一個服務器網(wǎng)址,但又不希望直接訪問到服務器?
那么就可以根據(jù)HOST文件中定義的域名對應的本地網(wǎng)址,在通過該域名查找時,便可以直接跳轉(zhuǎn)到HOST文件中定義的網(wǎng)址。比如,本地IP,172.0.1.2 域名,wanyy.com 當輸入該域名時,可以調(diào)轉(zhuǎn)到172.0.1.2這個IP的地址。
路由器緩存區(qū)
如果HOST緩存區(qū)中還是沒有出現(xiàn)過這個域名的話,那就到下一級繼續(xù)查找。IPS路由器緩存區(qū)
仍然沒找到的話,就會去找你用的服務商緩存區(qū)中去再查找,比如電信。-
根目錄查找
如果怎么都沒找到的話就是到最后一階段,去根目錄查找,在根據(jù)根目錄返回值繼續(xù)查找,直到找到一個最終IP為止。
DNS.png
關聯(lián)問題
- 如果電腦不能上網(wǎng)了,直接將dns改為8.8.8.8或114.114.114.114就可以上網(wǎng)了。
原因,就是不通過本地中間查找,直接將最終服務器的ip給dns就直接指定了找到了這個網(wǎng)址了。 - DNS劫持
是指網(wǎng)絡黑客攻擊某個節(jié)點服務器,并將一個虛擬網(wǎng)站的IP返還給對應的域名,也就是說在查找網(wǎng)頁的胖有回根據(jù)該域名查找到一個假的網(wǎng)頁。
這就是第二階段,根據(jù)域名找對應IP地址。
服務器處理
web服務器
是一臺安裝系統(tǒng)的機器,并安裝了接受請求的軟件,比如windows下通常會安裝web server,也就是一個管理的請求的入口。
- 常見的web服務器有Apache,Nginx,IIs等
-
web服務器接受用過的請求并交給網(wǎng)站代碼,或者接受請求反向代理到其他到其他服務器。
web服務器處理流程.PNG
例如,
一臺機器里有蘋果,雞蛋,牛奶,這臺機器只有個IP地址,127.1.0.1,那么通過瀏覽器找蘋果的時候,
首先找到的是127.1.0.1的這個IP,這個IP對應了同一機器,這個時候就需要一個管理的,比如Nginx,
這個軟件下會有一個配置文件,相當于分配單,Nignx會根據(jù)你發(fā)來的請求,將你的需求返回給你蘋果或者牛奶或者雞蛋。
這就是第三階段,根據(jù)IP通過web服務器來返還結(jié)果。
網(wǎng)站處理流程
是指M>V>C處理過程。
首先,根據(jù)上一步終于找到了一個網(wǎng)站,結(jié)果這個網(wǎng)站是一堆看不懂的代碼,那么怎么才能顯示成好看的頁面呢?
這就是M模型>V視圖>C控制器的處理過程。
M,這些代碼經(jīng)過運行后會交給控制器,就是操作數(shù)據(jù)庫的過程。同時它給控制器提供了一些接口。
V,根據(jù)接口控制器做處理后,會從模型文件中查找到指定的文件,在返還給控制器。
C,拿到結(jié)果的控制器會放到一個視圖模板中,并將視圖在還給頁面,于是我們看到的最終結(jié)果是視圖頁面。
這就是最后一步,顯示畫面的過程,也就是我們根據(jù)一堆字符串得到一個好看頁面的過程。