整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          原來從輸入網址到瀏覽器顯示的過程這么簡單,一看就懂!

          述從輸入網址到瀏覽器顯示的過程

            • 1.輸入網址URL
            • 2.DNS域名解析
            • 3.建立TCP連接
            • 4.瀏覽器向服務器發送HTTP請求
            • 5.服務器處理HTTP請求
            • 6.頁面渲染
            • 7.斷開TCP連接

          1.輸入網址URL

          在web瀏覽器窗口地址欄輸入想要訪問的網址URL。

          2.DNS域名解析

          以www.baidu.com為例,這是一個主機名也叫域名,而在整個互聯網中,路由器是以IP地址作為識別每個計算機的唯一標識,因此我們想要在互聯網中傳輸數據,就必須知道對方的IP地址。而DNS域名解析則幫助我們將主機名轉換成對應的IP地址。

          1. 一般來說,瀏覽器會首先查看自身緩存有沒有域名對應的IP地址,若有則DNS解析結束,直接返回該IP地址,若沒有,則查看本地硬盤的 hosts 文件,看看其中有沒有和這個域名對應的IP地址,如果有的話就直接使用 hosts 文件里面的 IP地址。
          2. 如果在本地的 hosts 文件沒有能夠找到對應的 IP地址,瀏覽器會發出一個 DNS請求到本地DNS服務器 。本地DNS服務器一般都是你的網絡接入服務器商提供,比如中國電信,中國移動。
          3. 查詢你輸入的網址的DNS請求到達本地DNS服務器之后,本地DNS服務器會首先查詢它的緩存記錄,如果緩存中有此條記錄,就可以直接返回結果,此過程是遞歸的方式進行查詢。如果沒有,本地DNS服務器還要向DNS根服務器進行查詢。
          4. 根DNS服務器沒有記錄具體的域名和IP地址的對應關系,而是告訴本地DNS服務器,你可以到域服務器上去繼續查詢,并給出域服務器的地址。這種過程是迭代的過程。
          5. 本地DNS服務器繼續向域服務器發出請求,在這個例子中,請求的對象是.com域服務器。.com域服務器收到請求之后,也不會直接返回域名和IP地址的對應關系,而是告訴本地DNS服務器,你的域名的解析服務器的地址。
          6. 最后,本地DNS服務器向域名的解析服務器發出請求,這時就能收到一個域名和IP地址對應關系,本地DNS服務器不僅要把IP地址返回給用戶電腦,還要把這個對應關系保存在緩存中,以備下次別的用戶查詢時,可以直接返回結果,加快網絡訪問,此過程是遞歸的過程。

          3.建立TCP連接

          在HTTP工作開始之前,web瀏覽器首先要通過網絡與web服務器建立連接,該連接是通過TCP來完成的。在TCP/IP協議模型中,HTTP屬于應用層協議,TCP屬于傳輸層協議,應用層協議HTTP工作之前首先要在傳輸層建立TCP連接,HTTP建立TCP連接通常使用端口號80。

          4.瀏覽器向服務器發送HTTP請求

          瀏覽器向 Web 服務器發起一個 HTTP 請求,HTTP 協議是建立在 TCP 協議之上的應用層協議,其本質是在建立起的TCP連接中,按照HTTP協議標準發送一個索要網頁的請求。在這一過程中,會涉及到負載均衡等操作。

          拓展:什么是負載均衡?

          負載均衡,英文名為 Load Balance,其含義是指將負載(工作任務)進行平衡、分攤到多個操作單元上進行運行,例如 FTP 服務器、Web 服務器、企業核心服務器和其他主要任務服務器等,從而協同完成工作任務。負載均衡建立在現有的網絡之上,它提供了一種透明且廉價有效的方法擴展服務器和網絡設備的帶寬、增加吞吐量、加強網絡處理能力并提高網絡的靈活性和可用性。

          負載均衡是分布式系統架構設計中必須考慮的因素之一,例如天貓、京東等大型用戶網站中為了處理海量用戶發起的請求,其往往采用分布式服務器,并通過引入反向代理等方式將用戶請求均勻分發到每個服務器上,而這一過程所實現的就是負載均衡。

          5.服務器處理HTTP請求

          服務器獲取到客戶端的 HTTP 請求后,會根據 HTTP 請求中的內容來決定如何獲取相應的文件,并將文件發送給瀏覽器,返回HTTP響應。

          6.頁面渲染

          瀏覽器在接受到服務器的HTTP響應時,開始顯示頁面,首先解析HTML文件構建 DOM 樹,然后解析 CSS 文件構建渲染樹,等到渲染樹構建完成后,瀏覽器開始布局渲染樹并將其繪制到屏幕上。
          在瀏覽器顯示HTML時,它會注意到需要獲取其他地址內容的標簽。這時,瀏覽器會發送一個獲取請求來重新獲得這些文件。比如我要獲取外圖片,CSS,JS文件等,類似于下面的鏈接:

          圖片:http://static.ak.fbcdn.net/rsrc.php/z12E0/hash/8q2anwu7.gif
          CSS式樣表:http://static.ak.fbcdn.net/rsrc.php/z448Z/hash/2plh8s4n.css
          JavaScript 文件:http://static.ak.fbcdn.net/rsrc.php/zEMOA/hash/c8yzb6ub.js

          這些地址都要經歷一個和HTML讀取類似的過程。所以瀏覽器會在DNS中查找這些域名,發送請求,重定向等等。不像動態頁面,靜態文件會允許瀏覽器對其進行緩存。有的文件可能會不需要與服務器通訊,而從緩存中直接讀取,或者可以放到CDN中。

          7.斷開TCP連接

          客戶端和服務器通過四次揮手終止 TCP 連接。

          用原生js將用戶在文本框里面輸入的內容失實的輸出預覽出來。

          前言

          我們在做表單的時候,通常會使用jQuery的表單驗證功能。但是如果只是很簡單的表單驗證輸出預覽的話,我們可以使用原生js來解決這個問題。這次云落就遇到這個問題,所以在這里記錄一下。

          情況介紹

          這幾天云落在做一個積分充值的東西,其中遇到了一個需求,就是將用戶在文本框里面輸入的內容實時的顯示出來。當然我們還可以對這個內容進行進一步的計算。比如我們可以將用戶輸入的內容實時的以十倍的計算結果輸出來。原來我百度了一下,發現有很好的解決辦法。使用原生js來解決這個問題。當然了這里的是輸出并不需要服務器的支持,也就是說數據并不經過服務器,如果經過服務器的話,這個辦法就沒有用了。

          代碼

          <input type="number" placeholder="請輸入充值的RMB金額" name="pay_number" id="pay_number" onkeyup="javascript:senddata(this);"/> 元 <span id="outdiv"></span>
          //下方為js代碼,上方為HTML構造
          <script type="text/javascript">function senddata(inputobj) {	
          var obj;	
          obj = document.getElementById("outdiv");	
          obj.innerHTML = '您將充值<strong><em><span style="color:#E53333;font-size:16px;">' + inputobj.value * 10 + '</span></em></strong>金幣';
          }</script>

          代碼很簡單,一看就懂,,不懂的話,會用就好。

          演示

          圖片演示

          后語

          這幾天在做一個積分的玩意,就是付費可見,在線充值的玩意,不是什么高大上的功能,地址可以去看下:http://googlo.me/chongzhi.html

          題圖來自unsplash

          、問題

          在瀏覽器中輸入網址,到頁面顯示出來,中間發生了什么?

          二、解答

          1、查詢DNS,獲取域名對應的IP。

          (1)檢查本地hosts文件是否有這個網址的映射,如果有,就調用這個IP地址映射,解析完成。

          (2)如果沒有,則查找本地DNS解析器緩存是否有這個網址的映射,如果有,返回映射,解析完成。

          (3)如果沒有,則查找填寫或分配的首選DNS服務器,稱為本地DNS服務器。服務器接收到查詢時:

          • 如果要查詢的域名包含在本地配置區域資源中,返回解析結果,查詢結束,此解析具有權威性。
          • 如果要查詢的域名不由本地DNS服務器區域解析,但服務器緩存了此網址的映射關系,返回解析結果,查詢結束,此解析不具有權威性。

          (4)如果本地DNS服務器也失效:

          • 如果未采用轉發模式(迭代),本地DNS就把請求發至13臺根DNS,根DNS服務器收到請求后,會判斷這個域名(如.com)是誰來授權管理,并返回一個負責該頂級域名服務器的IP,本地DNS服務器收到頂級域名服務器IP信息后,繼續向該頂級域名服務器IP發送請求,該服務器如果無法解析,則會找到負責這個域名的下一級DNS服務器(如http://baidu.com)的IP給本地DNS服務器,循環往復直至查詢到映射,將解析結果返回本地DNS服務器,再由本地DNS服務器返回解析結果,查詢完成。如果采用轉發模式(遞歸),則此DNS服務器就會把請求轉發至上一級DNS服務器,如果上一級DNS服務器不能解析,則繼續向上請求。最終將解析結果依次返回本地DNS服務器,本地DNS服務器再返回給客戶機,查詢完成。

          2、客戶機發送HTTP請求報文:

          (1)應用層:客戶端發送HTTP請求報文

          (2)傳輸層:切分長數據,并確??煽啃?。

          (3)網絡層:進行路由

          (4)數據鏈路層:傳輸數據

          (5)物理層:物理傳輸bit

          3、服務器端經過物理層→數據鏈路層→網絡層→傳輸層→應用層,解析請求報文,發送HTTP響應報文。

          4、客戶端解析HTTP響應報文

          5、瀏覽器開始顯示HTML

          6、瀏覽器重新發送請求獲取圖片、CSS、JS的數據。

          7、如果有AJAX,瀏覽器發送AJAX請求,及時更新頁面。

          ——————————————————

          微信搜索公眾號【輪子工廠】,后臺回復關鍵字:

          1.回復【圖書】:獲取15本新手自學編程,零基礎入門經典學習教材;

          2.回復【我要造輪子】:獲取100多本我根據知乎上面關于計算機問題的高贊回答里面的介紹整理出來的書籍;

          3.回復【內推】:可幫你內推到大廠工作。

          4.回復【C】:可免費獲得自制C語言教程。


          主站蜘蛛池模板: 亚洲日本中文字幕一区二区三区| 国产丝袜一区二区三区在线观看| 日本一道一区二区免费看| 日韩亚洲AV无码一区二区不卡 | 国产一区二区三区在线观看影院| 丰满人妻一区二区三区免费视频 | 无码人妻精品一区二区三区蜜桃| 波多野结衣一区二区三区高清av| 亚洲一区精品视频在线| 成人免费视频一区| 无码人妻精品一区二区三区66| 久久精品无码一区二区app| 午夜在线视频一区二区三区| 岛国无码av不卡一区二区| 韩国女主播一区二区| 亚洲日韩一区二区三区| 亚洲男女一区二区三区| 丝袜无码一区二区三区| 国产精品被窝福利一区| 一区二区三区在线播放视频| 国产麻豆剧果冻传媒一区| 国产成人免费一区二区三区| 国产精品亚洲一区二区在线观看| 日韩一区二区视频| 日韩国产免费一区二区三区| 97se色综合一区二区二区| 无码国产精品一区二区免费式直播 | 国产精品无码一区二区在线| 亚洲av无一区二区三区| 亚洲AV一区二区三区四区| 国产一区在线mmai| 国产视频一区在线播放| 无码日韩人妻AV一区免费l| 一区二区在线播放视频| 真实国产乱子伦精品一区二区三区 | 亚洲av午夜精品一区二区三区| 一区二区三区美女视频| 精品日本一区二区三区在线观看| 成人无码AV一区二区| 精品国产福利一区二区| 女人18毛片a级毛片一区二区|