1. 程式人生 > >URL訪問網站的整個過程,並描述用到的演算法和協議

URL訪問網站的整個過程,並描述用到的演算法和協議

  1. 若DNS快取中沒有相關資料,則IE瀏覽器先向DNS伺服器發出DNS請求:
  2. 這一過程的目的是獲取www.sina.com這個域名所對應的IP地址;
  3. IE瀏覽器向本機DNS模組發出DNS請求,DNS模組生成相關的DNS報文;
  4. DNS模組將生成的DNS報文傳遞給傳輸層的UDP協議單元;
  5. UDP協議單元將該資料封裝成UDP資料報,傳遞給網路層的IP協議單元;
  6. IP協議單元將該資料封裝成IP資料包,其中目的IP地址為DNS伺服器的IP地址;
  7. 封裝好的IP資料包將傳遞給資料鏈路層的協議單元進行傳送;
  8. 傳送時如果ARP快取中沒有相關資料,則傳送ARP廣播請求,等待ARP迴應;
  9. 得到ARP迴應後,將IP地址與路由下一跳MAC地址對應的資訊寫入ARP快取表;
  10. 寫入快取後,以路由下一跳地址填充目的MAC地址,並以資料幀形式轉發;
  11. 這個轉發過程可能會進行多次,這取決於DNS伺服器在校園網中的位置;
  12. DNS請求被髮送到DNS伺服器的資料鏈路層協議單元;
  13. DNS伺服器的資料鏈路層協議單元解析收到的資料幀,將其內部所含有的IP資料包傳遞給網路層IP協議單元;
  14. DNS伺服器的IP協議單元解析收到的IP資料包,將其內部所含有的UDP資料報傳遞給傳輸層的UDP協議單元;
  15. DNS伺服器的UDP協議單元解析收到的UDP資料包,將其內部所含有的DNS報文傳遞給該伺服器上的DNS服務單元;
  16. DNS服務單元收到DNS請求,將域名解析為對應的IP地址,產生DNS迴應報文;
  17. (所有應用層報文必須通過傳輸層、網路層和資料鏈路層,因此在下面的敘述中,我將簡化這一過程的敘述,簡化形式如下面的樣子,其中單箭頭為本機內部傳遞,雙箭頭為網路上的傳送)
  18. DNS迴應報文→UDP→IP→MAC→→請求域名解析的主機;
  19. 請求域名解析的主機收到資料幀,該資料幀→IP→UDP→DNS→IE瀏覽器;
  20. 將域名解析的結果以域名和IP地址對應的形式寫入DNS快取表。

相關推薦

URL訪問網站整個過程描述到的演算法協議

若DNS快取中沒有相關資料,則IE瀏覽器先向DNS伺服器發出DNS請求: 這一過程的目的是獲取www.sina.com這個域名所對應的IP地址; IE瀏覽器向本機DNS模組發出DNS請求,DNS模組生成相關的DNS報文; DNS模組將生成的DNS報文傳遞給傳輸層的UDP協議單元; UDP協議單元將該資料封裝

URL訪問網站過程(三次握手、四次揮手)傳送RST包的四種情況常用協議

URL訪問網站(三次握手、四次揮手) 1)獲得域名所對應的IP地址,若DNS快取中沒有相關資料,則IE瀏覽器向DNS伺服器發出DNS請求,以獲取域名所對應的IP地址。 2)IE瀏覽器與域名地址建立TCP連線,三次握手 3)http訪問 4)斷開TCP連線,四次揮手

SpringBoot中實現攔截器級別的URl訪問過快攔截利用JPA實現IP黑名單的功能。

今天給大家介紹一下SpringBoot中實現攔截器級別URl過快訪問攔截,並利用JPA實現IP黑名單的功能。 上一節中已經將中已經介紹了在控制器層面上面的URL攔截,這一節則側重於網站全域性式的攔截。就是不管輸入什麼URL地址都會進行過濾,判斷是否存在URL訪問過快的情況發

URL訪問網站整個過程

在校園網下,在IE中輸入www.sina.com.cn直到顯示結果的過程: 1、本地過程 若DNS快取中沒有相關資料,則IE瀏覽器先向DNS伺服器發出DNS請求: 這一過程的目的是獲取www.sina.com這個域名所對應的IP地址; IE瀏覽器向本機DNS

存儲過程中定義存儲過程類型調該存儲過程

https assign 定義 lin tps bms roc -- http DECLARE n NUMBER := 10; PROCEDURE do_something ( n1 IN NUMBER) IS BEGIN dbms_output.put

在按照ROS官方步驟操作同時Git管理整個過程git clone的新catkin_ws報錯: catkin_package() include dir 'include' does not exist relative to

RR make one ack body mes error AR gpo 在按照ROS官方步驟操作,同時用Git管理整個過程,git clone的新catkin_ws報錯如下: CMake Error at /opt/ros/kinetic/share/catkin/c

URL訪問網站的網路傳輸全過程

開啟瀏覽器,在位址列輸入URL,回車,出現網站內容。這是我們幾乎每天都在做的事,那這個過程中到底是什麼原理呢?HTTP、TCP、DNS、IP這些耳熟能詳的名詞都在什麼時候起著什麼作用呢?在這裡整體梳理一遍。 整個過程基本分做下面幾個部分: 1、域名解析成IP地址; 2、與目的主機進行TCP連線(三次握手)

Java實現MD5演算法過程利用自帶MD5函式進行對比校驗

文章目錄 一、環境說明 二、演算法原理概述 三、程式設計 資料結構 重要模組步驟 四、執行結果 一、環境說明 作業系統:window10 程式語言:Java (J

定義一個包含私有成員變數函式的類再定義一個內部類在內部類函式中訪問外部成員變數呼叫外部函式。在外部類函式中建立內部類物件呼叫內部類函式

public class Test5 {         //定義包含私有成員變數和函式         private int a = 201320883;         private voi

請說明瀏覽器的渲染過程解釋什麼是瀏覽器的重構與迴流?

瀏覽器的渲染過程: 1、瀏覽器解析HTML原始碼,然後建立一個DOM樹。在DOM樹中,每一個HTML標籤都會有一個對應的節點,並且每一個文字也都會有一個文字節點。 2、瀏覽器解析CSS程式碼,計算出最終的樣式資料。對CSS程式碼中的非法資料會直接忽視,優先順序定義為:瀏覽器

mysql定時執行某一儲存過程實現mysql資料庫的定時備份

mysql儲存過程 1、儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數(如果該儲存過程帶有引數)來呼叫執行它。 語法:CREATE PROCEDURE  過程名([[IN|OU

Python網路爬蟲(九):爬取頂點小說網站全部小說存入MongoDB

前言:本篇部落格將爬取頂點小說網站全部小說、涉及到的問題有:Scrapy架構、斷點續傳問題、Mongodb資料庫相關操作。 背景: Python版本:Anaconda3 執行平臺:Windows IDE:PyCharm 資料庫:MongoDB 瀏

怎麼檢視真實專案的http 請求的請求報文響應報文即requestresponse?只有這樣才能完全徹底明白一個http 請求整個過程傳送接收的是什麼東西。

IE瀏覽器,f12,網路,捕獲。 如,在前後端分離(即動靜分離,前端只有html程式碼,後端是介面返回json字串。這種方式,是最接近移動端專案即app專案的模式)方式,一個使用者儲存修改即savemodify為例: 因為是form提交是post方式,所以請求正文是

列舉常用的結構標記描述其作用。

結構標記專門用於標識頁面的不同結構,相對於使用<div>元素而言,可以實現語義化的標籤。 常用的結構標記有: <header>元素:用於定義文件的頁首; <nav&g

SpringMvc呼叫儲存過程返回儲存過程返還的資料

java後端很多時候都需要和資料庫進行互動,並返回業務資料。一般情況下都會採用執行SQL的方式來進行互動,但有些特別的場景時,也可以直接利用儲存過程返回資料。儲存過程返回資料的好處是隻需要一個呼叫,即可根據不同的引數返回不同的業務資料,這些業務資料有可能列名完全不一樣。實現如

列舉幾個 JavaScript 中常用的全域性函式描述其作用

JavaScript 中常用的全域性函式及其作用如下: 1. parseInt:解析一個字串並返回一個整數; 2. parseFloat:解析一個字串並返回一個浮點數; 3. isNaN:檢查某個

Java 執行資料庫儲存過程帶返回值

前提是載入資源DataSource private JdbcTemplate jdbcTemplate; Java 呼叫儲存過程: @Override public String oneUniscInfoHisToDm(final Str

CentOS7.2 安裝mysql5.6配置自動啟動遠端訪問

   安裝之前,需要先解除安裝maiiadb資料庫(centos7自帶的mysql的另一個版本) ## 檢視本機是否安裝了mariadb資料庫 $ rpm -qa|grep mariadb            ## 上一步查出來的檔名,直接複製下來就OK $ rpm -e

給定一個實數陣列按序排列(從小到大),從陣列從找出若干個數使得這若干個數的與M最為接近描述一個演算法給出演算法的複雜度。

有N個正實數(注意是實數,大小升序排列) x1 , x2 ... xN,另有一個實數M。 需要選出若干個x,使這幾個x的和與 M 最接近。 請描述實現演算法,並指出演算法複雜度。 #define M

[WPF自定義控制元件庫]瞭解WPF的佈局過程利用Measure為Expander新增動畫

1. 前言 這篇文章介紹WPF UI元素的兩步佈局過程,並且通過Resizer控制元件介紹只使用Measure可以實現些什麼內容。 我不建議初學者做太多動畫的工作,但合適的動畫可以引導使用者視線,提升使用者體驗。例如上圖的這種動畫,這種動畫挺常見的,在內容的高度改變時動態地改變自身的高度,除了好看以外,對