URL訪問網站的整個過程,並描述用到的演算法和協議
-
若DNS快取中沒有相關資料,則IE瀏覽器先向DNS伺服器發出DNS請求:
-
這一過程的目的是獲取www.sina.com這個域名所對應的IP地址;
-
IE瀏覽器向本機DNS模組發出DNS請求,DNS模組生成相關的DNS報文;
-
DNS模組將生成的DNS報文傳遞給傳輸層的UDP協議單元;
-
UDP協議單元將該資料封裝成UDP資料報,傳遞給網路層的IP協議單元;
-
IP協議單元將該資料封裝成IP資料包,其中目的IP地址為DNS伺服器的IP地址;
-
封裝好的IP資料包將傳遞給資料鏈路層的協議單元進行傳送;
-
傳送時如果ARP快取中沒有相關資料,則傳送ARP廣播請求,等待ARP迴應;
-
得到ARP迴應後,將IP地址與路由下一跳MAC地址對應的資訊寫入ARP快取表;
-
寫入快取後,以路由下一跳地址填充目的MAC地址,並以資料幀形式轉發;
-
這個轉發過程可能會進行多次,這取決於DNS伺服器在校園網中的位置;
-
DNS請求被髮送到DNS伺服器的資料鏈路層協議單元;
-
DNS伺服器的資料鏈路層協議單元解析收到的資料幀,將其內部所含有的IP資料包傳遞給網路層IP協議單元;
-
DNS伺服器的IP協議單元解析收到的IP資料包,將其內部所含有的UDP資料報傳遞給傳輸層的UDP協議單元;
-
DNS伺服器的UDP協議單元解析收到的UDP資料包,將其內部所含有的DNS報文傳遞給該伺服器上的DNS服務單元;
-
DNS服務單元收到DNS請求,將域名解析為對應的IP地址,產生DNS迴應報文;
-
(所有應用層報文必須通過傳輸層、網路層和資料鏈路層,因此在下面的敘述中,我將簡化這一過程的敘述,簡化形式如下面的樣子,其中單箭頭為本機內部傳遞,雙箭頭為網路上的傳送)
-
DNS迴應報文→UDP→IP→MAC→→請求域名解析的主機;
-
請求域名解析的主機收到資料幀,該資料幀→IP→UDP→DNS→IE瀏覽器;
- 將域名解析的結果以域名和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 請求的請求報文和響應報文,即request和response?只有這樣,才能完全徹底明白一個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可以實現些什麼內容。 我不建議初學者做太多動畫的工作,但合適的動畫可以引導使用者視線,提升使用者體驗。例如上圖的這種動畫,這種動畫挺常見的,在內容的高度改變時動態地改變自身的高度,除了好看以外,對