中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

用戶訪問網站的完整流程

發布時間:2020-07-20 14:05:05 來源:網絡 閱讀:378 作者:baishuchao 欄目:建站服務器

在瀏覽器輸入想要訪問的域名之后,瀏覽器會進行域名解析獲得IP地址,在經過TCP的連接,實現數據的傳輸就會有兩種報文,及請求報文和響應報文。最終才能實現通信。因此想要實現通信,就得先弄懂DNS的解析原理以及TCP連接通道的流程。

 

理論內容:

1DNS的介紹以及原理

2TCP/IP協議的介紹和三次握手及四次揮手

3HTTP協議的介紹及請求與響應報文

4、用戶訪問瀏覽器的完整過程

1DNS的介紹及解析原理

1)說說DNS是什么

DNSDomain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去·記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。DNS協議運行在UDP協議之上,使用端口號53訪問網站的實質就是解析其域名得到IP地址,再轉向其網站。

 

2DNS的解析原理:

用戶訪問網站的完整流程 

原理步驟:

1)系統首先會查找本地的DNS緩存和hosts文件信息,確認其中是否有與,域名www.baidu.com所對應的IP地址。如果有,就直接訪問這個IP地址所對應的www.baidu.com域名服務器

2)如果沒有找到,那么,系統將會把瀏覽器的解析請求發送給本地主機所指定的DNS服務器,稱為LDNS。如果LDNS服務器中有域名www.baidu.com所對應的IP地址,則返回給客戶端的瀏覽器,如果沒有,則繼續請求其他DNS服務器。

3LDNS服務器會從DNS系統的根(.)開始請求對域名www.baidu.com的解析。根DNS服務器全球只有13臺,根域名服務器是沒有域名www.baidu.com解析記錄的。但是它會有域名www.baidu.com所對應的頂級域.com的解析記錄,因此直接把頂級域.com對應的DNS地址返回給LDNS服務器。

4LDNS服務器獲取到頂級域.com對應的DNS服務器地址后,就會去.com服務器請求www.baidu.com域名的解析。在頂級域名服務器也不會有www.baidu.com的解析記錄的。但是它有www.baidu.com的父級域名的解析記錄,即baidu.com。因此頂級域.com服務器又會把baidu.com所對應的DNS服務器的IP地址返回給LDNS

5LDNS服務器收到baidu.com所對應的IP地址后,就會去baidu.com域名服務器請求www.baidu.com的域名解析。Baidu.com域名對應的DNS服務器是該域名的授權DNS服務器。這個DNS服務器就是企業購買域名時用于管理解析的服務器。

6baidu.com域名DNS服務器會吧www.baidu.com域名所對應的IP地址給解析出來,然后發給LDNS

7LDNS把解析出來的結果,www.baudu.com所對應的IP地址發送給客戶端的瀏覽器。并且LDNS也會將其域名和對應的地址緩存到cache中。

8)客戶端瀏覽器收到后,也會將其域名以及對應的IP地址緩存的到DNS緩存和hosts文件中。

 

2TCP/IP協議的介紹和三次握手及四次揮手

1)說說TCP/IP協議是什么

Transmission Control Protocol/Internet Protocol的簡寫,中譯名為傳輸控制協議/因特網互聯協議,又名網絡通訊協議,是Internet最基本的協議、Internet國際互聯網絡的基礎,由網絡層IP協議和傳輸層TCP協議組成。TCP/IP 定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。協議采用了4層的層級結構,每一層都呼叫它的下一層所提供的協議來完成自己的需求。通俗而言:TCP負責發現傳輸的問題,一有問題就發出信號,要求重新傳輸,直到所有數據安全正確地傳輸到目的地。而IP是給因特網的每一臺聯網設備規定一個地址。

2各個狀態的意義如下: 
1LISTEN 偵聽來自遠方TCP端口的連接請求; 
2SYN-SENT -在發送連接請求后等待匹配的連接請求; 
3SYN-RECEIVED - 在收到和發送一個連接請求后等待對連接請求的確認; 
4ESTABLISHED代表一個打開的連接,數據可以傳送給用戶; 
5FIN-WAIT-1 等待遠程TCP的連接中斷請求,或先前的連接中斷請求的確認;
6FIN-WAIT-2 從遠程TCP等待連接中斷請求; 
7CLOSE-WAIT 等待從本地用戶發來的連接中斷請求; 
8CLOSING -等待遠程TCP對連接中斷的確認; 
9LAST-ACK 等待原來發向遠程TCP的連接中斷請求的確認; 
10TIME-WAIT 等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認; 
11CLOSED 沒有任何連接狀態;

3TCP三次握手

所謂三次握手(Three-way Handshake),是指建立一個TCP連接時,需要客戶端和服務器總共發送3個包。

三次握手的目的是連接服務器指定端口,建立TCP連接,并同步連接雙方的序列號和確認號并交換 TCP 窗口大小信息.socket編程中,客戶端執行connect()時。將觸發三次握手。

用戶訪問網站的完整流程 

三次握手過程:

1)第一次握手:建立連接時,客戶端A發送SYN包(SYN=j)到服務器B,并進入SYN_SEND狀態,等待服務器B確認。

2)第二次握手:服務器B收到SYN包,必須確認客戶ASYNACK=j+1),同時自己也發送一個SYN包(SYN=k),即SYN+ACK包,此時服務器B進入SYN_RECV狀態。

3)第三次握手:客戶端A收到服務器BSYNACK包,向服務器B發送確認包ACKACK=k+1),此包發送完畢,客戶端A和服務器B進入ESTABLISHED狀態,完成三次握手。

4TCP 四次揮手
TCP的連接的拆除需要發送四個包,因此稱為四次揮手(four-way handshake)。客戶端或服務器均可主動發起揮手動作,在socket編程中,任何一方執行close()操作即可產生揮手操作。

用戶訪問網站的完整流程 

 

四次揮手過程:

1第一次揮手:客戶端A發送一個FIN,用來關閉客戶A到服務器B的數據傳送。 

2第二次揮手:服務器B收到這個FIN,它發回一個ACK,確認序號為收到的序號加1。和SYN一樣,一個FIN將占用一個序號。 

3第三次揮手:服務器B關閉與客戶端A的連接,發送一個FIN給客戶端A 

4第四次揮手:客戶端A發回ACK報文確認,并將確認序號設置為收到序號加1

3HTTP協議的介紹及請求與響應報文

1HTTP報文

HTTP報文中有很多行內人,這些行的字段都是由一些ASCII碼串組成,但各個字段的長度是不同的。HTTP報文可以分為兩種,一種是從web客戶端發往web服務端的HTTP報文,稱為請求保衛,另一種是從web服務端發往客戶端的報文,稱為響應報文。兩種報文的格式的基本相同。

1)請求報文介紹

用戶訪問網站的完整流程

2)請求報文的內容與格式有如下:

1)請求行

作用:用來說明客戶端想要做什么。

內容:包括方法字段GETURL字段以及HTTP協議版本

2)請求頭

作用:通過客戶端把請求的相關信息發給服務器

內容:包括媒體類型、語言類型、支持壓縮、客戶端類型、主機等信息。

3)空行

作用:告訴服務器空行以下內容不屬于請求頭部信息。

4)請求報文主體

作用:用來說明客戶端具體想要做的事情。

內容:查看信息、應用post方法。

3)響應報文介紹

用戶訪問網站的完整流程

4)請求報文的內容與格式有如下:

1)狀態行

作用:用來說明服務端響應客戶端的狀態。

內容:包括洗衣及版本號、數字狀態碼、狀態情況

2)響應頭

作用:通過服務端把響應的相關信息給客戶端

內容:包括Locationserverconnectvary

3)空行

作用:告訴客戶端空行以下內容不屬于響應頭部信息。

4)響應報文主體

作用:用來裝載著要返回給客戶端的數據

內容:包括文本、html、視頻或者是圖片。

 

5GETPOST的認識

GET當客戶端要從服務器中讀取某個資源時,使用GET 方法。GET 方法要求服務器將URL 定位的資源放在響應報文的數據部分,回送給客戶端,即向服務器請求某個資源。使用GET 方法時,請求參數和對應的值附加在 URL 后面,利用一個問號(“?”)代表URL 的結尾與請求參數的開始,傳遞參數長度受限制。例如,/index.jsp?id=100&op=bind

POST:當客戶端給服務器提供信息較多時可以使用POST 方法,POST 方法向服務器提交數據,比如完成表單數據的提交,將數據提交給服務器處理。GET 一般用于獲取/查詢資源信息,POST 會附帶用戶數據,一般用于更新資源信息。POST 方法將請求參數封裝HTTP 請求數據中,以名稱/值的形式出現,可以傳輸大量數據;

 

4、用戶訪問瀏覽器的完整過程

1、客戶端在瀏覽器中輸入要訪問的域名地址,如:www.baidu.com

2、瀏覽器請求解析DNS服務器,把域名www.baidu.com轉換成web服務器的IP地址。

1系統首先會查找本地的DNS緩存和hosts文件信息,確認其中是否有與,域名www.baidu.com所對應的IP地址。如果有,就直接訪問這個IP地址所對應的www.baidu.com域名服務器。

2如果沒有找到,那么,系統將會把瀏覽器的解析請求發送給本地主機所指定的DNS服務器,稱為LDNS。如果LDNS服務器中有域名www.baidu.com所對應的IP地址,則返回給客戶端的瀏覽器,如果沒有,則繼續請求其他DNS服務器。

3LDNS服務器會從DNS系統的根(.)開始請求對域名www.baidu.com的解析。DNS服務器全球只有13臺,根域名服務器是沒有域名www.baidu.com解析記錄的。但是它會有域名www.baidu.com所對應的頂級域.com的解析記錄,因此直接把頂級域.com對應的DNS地址返回給LDNS服務器。

4LDNS服務器獲取到頂級域.com對應的DNS服務器地址后,就會去.com服務器請求對www.baidu.com域名的解析。在頂級域名服務器也不會有www.baidu.com的解析記錄的。但是它有www.baidu.com的父級域名,即baidu.com。因此級域名.com服務器又會把baidu.com所對應的DNS服務器的IP地址返回給LDNS

5LDNS服務器收到baidu.com所對應的IP地址后,就會去baidu.com域名服務器請求對www.baidu.com的域名解析。Baidu.com域名對應的DNS服務器是該域名的授權DNS服務器。這個DNS服務器就是企業購買域名時用于管理解析的服務器。

6baidu.com域名DNS服務器會吧www.baidu.com域名所對應的IP地址給解析出來,然后發給LDNS

7LDNS把解析出來的結果,www.baudu.com所對應的IP地址發送給客戶端的瀏覽器。并且LDNS也會將其域名和對應的地址緩存到cache中。

8客戶端瀏覽器收到后,也會將其域名以及對應的IP地址緩存的到DNS緩存和hosts文件中。

 

3、瀏覽器從訪問的IP地址(URL)解析出默認的斷后號:80

4、瀏覽器通過解析后得到的IP地址和端口號進行web服務器建立一條TCP連接通道。

1)第一次握手:

建立連接時,客戶端A發送SYN包(SYN=j)到服務器B,并進入SYN_SEND狀態,等待服務器B確認。

2)第二次握手:

服務器B收到SYN包,必須確認客戶ASYNACK=j+1),同時自己也發送一個SYN包(SYN=k),即SYN+ACK包,此時服務器B進入SYN_RECV狀態。

3)第三次握手:

客戶端A收到服務器BSYNACK包,向服務器B發送確認包ACKACK=k+1),此包發送完畢,客戶端A和服務器B進入ESTABLISHED狀態,完成三次握手。

 

5、建立TCP連接之后,瀏覽器向web服務器發送一條HTTP請求報文。

1)請求行

作用:用來說明客戶端想要做什么。

內容:包括方法字段GETURL字段以及HTTP協議版本

2)請求頭

作用:通過客戶端把請求的相關信息發給服務器

內容:包括媒體類型、語言類型、支持壓縮、客戶端類型、主機等信息。

3)空行

作用:告訴服務器空行以下內容不屬于請求頭部信息。

4)請求報文主體

作用:用來說明客戶端具體想要做的事情。

內容:查看信息、應用post方法。

6web服務器響應并讀取瀏覽器的請求信息,然后返回一條HTTP響應報文。

1)狀態行

作用:用來說明服務端響應客戶端的狀態。

內容:包括洗衣及版本號、數字狀態碼、狀態情況

2)響應頭

作用:通過服務端把響應的相關信息給客戶端

內容:包括Locationserverconnectvary

3)空行

作用:告訴客戶端空行以下內容不屬于響應頭部信息。

4)響應報文主體

作用:用來裝載著要返回給客戶端的數據

內容:包括文本、html、視頻或者是圖片。

7、web服務器關閉HTTP連接,關閉TCP連接,web服務器顯示訪問的網站內容到屏幕上。

1)第一次揮手:

客戶端A發送一個FIN,用來關閉客戶A到服務器B的數據傳送。 

2)第二次揮手:

服務器B收到這個FIN,它發回一個ACK,確認序號為收到的序號加1。和SYN一樣,一個FIN將占用一個序號。 

3)第三次揮手:

服務器B關閉與客戶端A的連接,發送一個FIN給客戶端A 

4)第四次揮手:

客戶端A發回ACK報文確認,并將確認序號設置為收到序號加1


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

马边| 高淳县| 巨野县| 都匀市| 寿宁县| 西乌珠穆沁旗| 阿拉善盟| 舟曲县| 富源县| 东光县| 玛多县| 长葛市| 疏附县| 桐城市| 巴楚县| 祁连县| 屯门区| 隆子县| 纳雍县| 六枝特区| 新田县| 淮滨县| 舞阳县| 西贡区| 盱眙县| 准格尔旗| 江城| 奎屯市| 嘉鱼县| 海兴县| 衡阳市| 建平县| 乐业县| 巴林左旗| 公安县| 甘谷县| 东平县| 芒康县| 永吉县| 宝清县| 濮阳市|