當前位置:首頁 » 網站資訊 » 網站從輸入到顯示經歷了什麼
擴展閱讀
手機網路黑爪怎麼解除 2025-01-16 02:29:34
操作系統和計算機網路 2025-01-16 02:27:22

網站從輸入到顯示經歷了什麼

發布時間: 2022-07-01 06:44:07

㈠ 輸入域名點擊回車,中間經歷了什麼過程

當我們開始在瀏覽器中輸入網址的時候,瀏覽器其實就已經在智能的匹配可能得 url 了,他會從歷史記錄,書簽等地方,找到已經輸入的字元串可能對應的 url,然後給出智能提示,讓你可以補全url地址。對於 google的chrome 的瀏覽器,他甚至會直接從緩存中把網頁展示出來,就是說,你還沒有按下 enter,頁面就出來了。

瀏覽器查找域名的IP

一、請求一旦發起,瀏覽器首先要做的事情就是解析這個域名

一般來說,瀏覽器會首先查看本地硬碟的 hosts 文件,看看其中有沒有和這個域名對應的規則,如果有的話就直接使用 hosts 文件裡面的 ip 地址。

二、如果在本地的 hosts 文件沒有能夠找到對應的 ip 地址,瀏覽器會發出一個 DNS請求到本地DNS伺服器 。

本地DNS伺服器一般都是你的網路接入伺服器商提供,比如中國電信,中國移動。

三、查詢你輸入的網址的DNS請求到達本地DNS伺服器之後,本地DNS伺服器會首先查詢它的緩存記錄,如果緩存中有此條記錄,就可以直接返回結果,此過程是遞歸的方式進行查詢。如果沒有,本地DNS伺服器還要向DNS根伺服器進行查詢。

四、根DNS伺服器沒有記錄具體的域名和IP地址的對應關系,而是告訴本地DNS伺服器,你可以到域伺服器上去繼續查詢,並給出域伺服器的地址。這種過程是迭代的過程。

五、本地DNS伺服器繼續向域伺服器發出請求

比如請求的對象是.com域伺服器。.com域伺服器收到請求之後,也不會直接返回域名和IP地址的對應關系,而是告訴本地DNS伺服器,你的域名的解析伺服器的地址。

六、最後,本地DNS伺服器向域名的解析伺服器發出請求

這時就能收到一個域名和IP地址對應關系,本地DNS伺服器不僅要把IP地址返回給用戶電腦,還要把這個對應關系保存在緩存中,以備下次別的用戶查詢時,可以直接返回結果,加快網路訪問。

㈡ 從輸入URL到頁面載入完成的過程中都發生了什麼事情

首先是「輸入 URL」,大部分人的第一反應會是鍵盤,不過為了與時俱進,這里將介紹觸摸屏設備的交互。
觸摸屏一種感測器,目前大多是基於電容(Capacitive)來實現的,以前都是直接覆蓋在顯示屏上的,不過最近出現了 3 種嵌入到顯示屏中的技術,第一種是 iPhone 5 的 In-cell,它能減小了 0.5 毫米的厚度,第二種是三星使用的 On-cell 技術,第三種是國內廠商喜歡用的 OGS 全貼合技術,具體細節可以閱讀這篇文章。
當手指在這個感測器上觸摸時,有些電子會傳遞到手上,從而導致該區域的電壓變化,觸摸屏控制器晶元根據這個變化就能計算出所觸摸的位置,然後通過匯流排介面將信號傳到 CPU 的引腳上。
以 Nexus 5 為例,它所使用的觸屏控制器是 Synaptics S3350B,匯流排介面為 I²C,以下是 Synaptics 觸摸屏和處理器連接的示例:

左邊是處理器,右邊是觸摸屏控制器,中間的 SDA 和 SCL 連線就是 I²C 匯流排介面。
CPU 內部的處理
移動設備中的 CPU 並不是一個單獨的晶元,而是和 GPU 等晶元集成在一起,被稱為 SoC(片上系統)。
前面提到了觸屏和 CPU 的連接,這個連接和大部分計算機內部的連接一樣,都是通過電氣信號來進行通信的,也就是電壓高低的變化,如下面的時序圖:

在時鍾的控制下,這些電流會經過 MOSFET 晶體管,晶體管中包含 N 型半導體和 P 型半導體,通過電壓就能控制線路開閉,然後這些 MOSFET 構成了 CMOS,接著再由 CMOS 實現「與」「或」「非」等邏輯電路門,最後由邏輯電路門上就能實現加法、位移等計算,整體如下圖所示(來自《計算機體系結構》):

除了計算,在 CPU 中還需要存儲單元來載入和存儲數據,這個存儲單元一般通過觸發器(Flip-flop)來實現,稱為寄存器。
以上這些概念都比較抽象,推薦閱讀「How to Build an 8-Bit Computer」這篇文章,作者基於晶體管、二極體、電容等原件製作了一個 8 位的計算機,支持簡單匯編指令和結果輸出,雖然現代 CPU 的實現要比這個復雜得多,但基本原理還是一樣的。
另外其實我也是剛開始學習 CPU 晶元的實現,所以就不在這誤人子弟了,感興趣的讀者請閱讀本節後面推薦的書籍。
從 CPU 到操作系統內核
前面說到觸屏控制器將電氣信號發送到 CPU 對應的引腳上,接著就會觸發 CPU 的中斷機制,以 Linux 為例,每個外部設備都有一標識符,稱為中斷請求(IRQ)號,可以通過 /proc/interrupts 文件來查看系統中所有設備的中斷請求號,以下是 Nexus 7 (2013) 的部分結果:
shell@flo:/ $ cat /proc/interrupts
CPU0
17: 0 GIC dg_timer
294: 1973609 msmgpio elan-ktf3k
314: 679 msmgpio KEY_POWER

因為 Nexus 7 使用了 ELAN 的觸屏控制器,所以結果中的 elan-ktf3k 就是觸屏的中斷請求信息,其中 294 是中斷號,1973609 是觸發的次數(手指單擊時會產生兩次中斷,但滑動時會產生上百次中斷)。
為了簡化這里不考慮優先順序問題,以 ARMv7 架構的處理器為例,當中斷發生時,CPU 會停下當前運行的程序,保存當前執行狀態(如 PC 值),進入 IRQ 狀態),然後跳轉到對應的中斷處理程序執行,這個程序一般由第三方內核驅動來實現,比如前面提到的 Nexus 7 的驅動源碼在這里 touchscreen/ektf3k.c。
這個驅動程序將讀取 I²C 匯流排中傳來的位置數據,然後通過內核的 input_report_abs 等方法記錄觸屏按下坐標等信息,最後由內核中的input 子模塊將這些信息都寫進 /dev/input/event0 這個設備文件中,比如下面展示了一次觸摸事件所產生的信息:
130|shell@flo:/ $ getevent -lt /dev/input/event0
[ 414624.658986] EV_ABS ABS_MT_TRACKING_ID 0000835c
[ 414624.659017] EV_ABS ABS_MT_TOUCH_MAJOR 0000000b
[ 414624.659047] EV_ABS ABS_MT_PRESSURE 0000001d
[ 414624.659047] EV_ABS ABS_MT_POSITION_X 000003f0
[ 414624.659078] EV_ABS ABS_MT_POSITION_Y 00000588
[ 414624.659078] EV_SYN SYN_REPORT 00000000
[ 414624.699239] EV_ABS ABS_MT_TRACKING_ID ffffffff
[ 414624.699270] EV_SYN SYN_REPORT 00000000

從操作系統 GUI 到瀏覽器
前面提到 Linux 內核已經完成了對硬體的抽象,其它程序只需要通過監聽 /dev/input/event0 文件的變化就能知道用戶進行了哪些觸摸操作,不過如果每個程序都這么做實在太麻煩了,所以在圖像操作系統中都會包含 GUI 框架來方便應用程序開發,比如 Linux 下著名的 X。
但 Android 並沒有使用 X,而是自己實現了一套 GUI 框架,其中有個 EventHub 的服務會通過 epoll 方式監聽 /dev/input/ 目錄下的文件,然後將這些信息傳遞到 Android 的窗口管理服務(WindowManagerService)中,它會根據位置信息來查找相應的 app,然後調用其中的監聽函數(如 onTouch 等)。

㈢ 當打開瀏覽器,從在地址欄里輸入一個URL開始,到出現整個頁面,網路上都發生了什麼事

打開瀏覽器 輸入URL 回車以後就會在網路上尋找路由器 找到路由器裡面以後就讀路由表 理論上在12個路由表之內能找到你所輸入的URL 然後空鏈接到這個地址 如果是http頭然後就會進行默認的監聽80埠 如果是FTP頭就會監聽其它埠 監聽正常以後會進行握手 握手就是確定協議類型 接著會話 你的電腦像URL提交需要信息的一個表單 電腦說我要你這個地址下面的所有WEB頁面 那邊的WEB站點會要你的電腦出示身份證 看看你的電腦是不是好人 如果是好人 就說OK 我給你 但是我先給你一份我WEB裡面資料的單據把 就是cookies 同時WEB站點在自己運算 把網頁代碼運算成用戶可以接受的窗口網頁 然後你的電腦拿到了這個單據 再根據單據裡面的內容和WEB要 WEB就把運算好的網頁返回到你的瀏覽器中。

大概就是這樣

㈣ 我們在地址欄中輸入網址,電腦就可以找到並顯示這個網站,這其中有什麼原理

這個原理就是在你輸入這個網址的時候,系統會自動分析域名並發送請求數據到相關的伺服器。伺服器在接收到數據以後再反饋數據過來。接收到數據後就會顯示該網站。

有時候顯示伺服器無反映就是你的數據沒有到達或者伺服器無法分析。。。。。

希望這種解釋能幫到你。

㈤ 從輸入 url 到頁面載入完成的過程中都發生了什麼事情

作一個簡單粗暴的描述,假設是簡單的HTTP請求,IPV4,沒有代理。
1.瀏覽器查詢緩存,如果緩存存在跳到第9步。

2.瀏覽器詢問操作系統伺服器的IP地址。

3.操作系統做DNS查詢,返回IP地址給瀏覽器。

4.瀏覽器打開對伺服器的TCP連接(如果是HTTPS協議的話會更復雜)。

5.瀏覽器通過TCP連接發送HTTP請求。

6.瀏覽器接收HTTP響應並且可能關掉TCP連接,或者是重新使用連接處理新請求。

7.瀏覽器檢查HTTP響應是否為一個重定向(3xx 結果狀態碼 ),一個驗證請求(401),錯誤(4xx 5xx)等等,這些都是不同響應的正常處理(2xx).

8.如果響應可緩存,將存入緩存。

9.瀏覽器解碼響應(例如:如果它是gzziped壓縮)。

10.瀏覽器決定如何處理這些響應(例如,它是HTML頁面,一張圖片,一段音樂)。

11.瀏覽器展現響應,對未知類型還會彈出下載對話框。

這里邊的每個步驟都可以長篇大論一番,當然還有很多東西與這些步驟平行發生。
(完)

㈥ 用戶從輸入url到最終頁面展示,這個過程中發生了什麼

具體過程DNS解析DNS解析的過程就是尋找哪台機器上有你需要資源的過程。當你在瀏覽器中輸入一個地址時,例如,其實不是網路網站真正意義上的地址。互聯網上每一台計算機的唯一標識是它的IP地址,但是IP地址並不方便記憶。用戶更喜歡用方便記憶的網址去尋找互聯網上的其它計算機,也就是上面提到的網路的網址。所以互聯網設計者需要在用戶的方便性與可用性方面做一個權衡,這個權衡就是一個網址到IP地址的轉換,這個過程就是DNS解析。它實際上充當了一個翻譯的角色,實現了網址到IP地址的轉換。網址到IP地址轉換的過程是如何進行的?

㈦ 從輸入網址到打開網頁經歷的所有過程,越詳細越好

一:URL解析
二:TCP三次握手建立連接
三:發送http請求
四:渲染頁面
五:四次揮手斷開請求

㈧ 從輸入 URL 到頁面載入完成的過程中都發生了什麼事情

在瀏覽器中輸入URL也就是域名以後,首先,瀏覽器先連接域名解析伺服器,通過域名解析伺服器,得到該域名對應的IP地址(如直接輸入了IP地址,跳過這步)和埠(默認是80口),然後,瀏覽器嘗試通過這個IP地址和埠與伺服器的Web伺服器端程序建立連接,如連接成功,Web伺服器端程序會主動向你的瀏覽器傳遞Web首頁的相關內容,後面的事情,就是根據你的操作,轉換、刷新頁面。

㈨ 一個頁面從輸入 url 到頁面載入完的過程中都發生了什麼事情

瀏覽器會把這個請求提交到網路,網路根據URL解析得到IP,然後根據IP訪問對應的網站空間對應頁面文件,然後讀取頁面文件反映到瀏覽器上,瀏覽器會對頁面代碼以及各種js、css等東西進行解析架構,載入頁面代碼,從代碼第一行開始,載入到結束,然後返回一個回應:載入結束,這樣在瀏覽器底部會顯示網頁載入完畢或者在地址欄會有相應的變化顯示。

㈩ 求域名從輸入到實現訪問的詳細流程,該過程都經過了哪幾個服務商的哪些伺服器

輸入域名—瀏覽器接受數據—向運營商伺服器發送數據—internet域名解析 伺服器(com 網站的解析伺服器在美國如網路,cn站點屬於中國解析伺服器在中國,)—解析成目標網站伺服器的ip地址並發送數據—數據經域名解析伺服器—發送到你的IP—數據由瀏覽器解析 —成功!!懂了不?