從URL輸入到頁面展現(xiàn)的簡單流程

URL是什么

  • URL:Uniform Resource Location 統(tǒng)一資源定位符,用于定位互聯(lián)網(wǎng)上的資源

采用URL可以用一種統(tǒng)一的格式來描述各種信息資源,包括文件、服務(wù)器的地址和目錄等。
URL的格式URL的格式由下列三部分組成:

  • 第一部分是協(xié)議(或稱為服務(wù)方式);
  • 第二部分是存有該資源的主機(jī)IP地址(有時(shí)也包括端口號(hào));
  • 第三部分是主機(jī)資源的具體地址。,如目錄和文件名等。
  • 第一部分和第二部分之間用“://”符號(hào)隔開,第二部分和第三部分用“/”符號(hào)隔開。第一部分和第二部分是不可缺少的,第三部分有時(shí)可以省略。

URL對應(yīng)http、file、ftp、https協(xié)議

  • http超文本傳輸協(xié)議(HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。對應(yīng)網(wǎng)絡(luò)上的某個(gè)資源。
  • file:本地文件傳輸協(xié)議,F(xiàn)ile協(xié)議主要用于訪問本地計(jì)算機(jī)中的文件,就如同在Windows資源管理器中打開文件一樣。對應(yīng)本地的某個(gè)資源
  • ftp: 是File Transfer Protocol(文件傳輸協(xié)議)的英文簡稱,而中文簡稱為“文傳協(xié)議”。用于Internet上的控制文件的雙向傳輸。用Internet語言來說,用戶可通過客戶機(jī)程序向(從)遠(yuǎn)程主機(jī)上傳(下載)文件。
  • https:(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。簡單來說,就是加密后的http。

而不加httphttps的域名則是因?yàn)槠溆蛎彤?dāng)前頁面的協(xié)議保持一致

域名解析

對于http://jirengu.com 的URL,瀏覽器實(shí)際上不知道jirengu.com到底是什么東西,需要查找jirengu.com網(wǎng)站所在服務(wù)器的IP地址,才能找到目標(biāo)。域名比數(shù)字的IP好記,所以HTML上顯示的是域名

局域網(wǎng) IP 和公網(wǎng) IP 是有差別的,如果你在某個(gè)局域網(wǎng)中,那你上網(wǎng)時(shí)的使用的IP就是局域網(wǎng)的IP,而不是你設(shè)備上的IP,而公網(wǎng)IP是需要申請的

域名解析的流程
  • 1.瀏覽器緩存 – 瀏覽器會(huì)緩存DNS記錄一段時(shí)間
  • 2.系統(tǒng)緩存 - 從 Hosts 文件查找是否有該域名和對應(yīng) IP。
  • 3.路由器緩存 – 一般路由器也會(huì)緩存域名信息。
  • 4.SP DNS 緩存 – 比如到電信的 DNS 上查找緩存。

你所打開的域名按以上順序進(jìn)行緩存,如果都沒有找到,則向根域名服務(wù)器查找域名對應(yīng) IP,根域名服務(wù)器把請求轉(zhuǎn)發(fā)到下一級,直到找到 IP

電腦如果上不了網(wǎng),修改dns為8.8.8.8(google提供的dns服務(wù)器) 或者114.114.114.114(國內(nèi)某個(gè)dns服務(wù)器),你所打開的域名就會(huì)直接從上面的服務(wù)器中尋找IP
dns 劫持:當(dāng)你查找的域名時(shí),所在的根服務(wù)器中的域名遭惡意篡改后給了個(gè)假的IP地址,導(dǎo)致你訪問的網(wǎng)站不對,危害大,一般攻擊的是ISP DNS

服務(wù)器處理階段

服務(wù)器是一臺(tái)安裝系統(tǒng)的機(jī)器,常見的系統(tǒng)如Linux、windows server 2012
系統(tǒng)里安裝的處理請求的應(yīng)用叫 Web server

Web服務(wù)器

常見的 web服務(wù)器有 Apache、Nginx、IIS、Lighttpd
web服務(wù)器接收用戶的Request 交給網(wǎng)站代碼,或者接受請求反向代理到其他 web服務(wù)器

示例
用戶發(fā)送Request交給Web服務(wù)器(ngnix),ngnix接收后,查找到IP地址202.112.230.14,當(dāng)然,同一個(gè)IP下對應(yīng)有不同的Request請求,通過ngnix尋找到該IP對應(yīng)的服務(wù)器下的文件夾,再發(fā)送給用戶

web服務(wù)器.png

網(wǎng)站處理流程

MVC 模型(model)-視圖(view)-控制器(controller)

rails_mvc
  • 瀏覽器向 /users 發(fā)送請求;
  • Rails 的路由把 /users 交給 Users 控制器的 index 動(dòng)作處理;
  • index 動(dòng)作要求 User 模型讀取所有用戶(User.all);
  • User 模型從數(shù)據(jù)庫中讀取所有用戶;
  • User 模型把所有用戶組成的列表返回給控制器;
  • 控制器把所有用戶賦值給 @users 變量,然后傳入 index 視圖;
  • 視圖使用嵌入式 Ruby 把頁面渲染成 HTML;
  • 控制器把 HTML 送回瀏覽器
    我們所說的前端就是視圖的部分

瀏覽器處理階段

  • HTML字符串被瀏覽器接受后被一句句讀取解析
  • 解析到link 標(biāo)簽后重新發(fā)送請求獲取css
  • 解析到 script標(biāo)簽后發(fā)送請求獲取 js,并執(zhí)行代碼
  • 解析到img 標(biāo)簽后發(fā)送請求獲取圖片資源

繪制網(wǎng)頁階段

瀏覽器根據(jù) HTML 和 CSS 計(jì)算得到渲染樹,繪制到屏幕上
由HTML和CSS來控制網(wǎng)頁的整個(gè)渲染效果,通過js來執(zhí)行完成網(wǎng)頁的視圖效果

通過上述過程簡單的描述了從URL到頁面展示的流程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容