http相關(guān)面試問(wèn)題

目錄

  1. http2.0

  2. Http與Https的基本概念和他們的區(qū)別

  3. HTTPS工作原理

  4. 常用的HTTP方法

  5. GET方法與POST方法的區(qū)別

  6. HTTP請(qǐng)求報(bào)文與響應(yīng)報(bào)文格式

  7. 常見(jiàn)的HTTP狀態(tài)碼

  8. 一個(gè)頁(yè)面從輸入 URL 到頁(yè)面加載顯示完成,這個(gè)過(guò)程中都發(fā)生了什么?

  9. HTTP優(yōu)化方案

  10. localStorage. sessionStorage、 Cookie不同點(diǎn)

  11. get和post請(qǐng)求在緩存方面的區(qū)別

  12. cookie session區(qū)別

  13. cookie屬性

  14. https詳細(xì)過(guò)程

  15. TCP擁塞控制

  16. TCP和UDP

  17. **兩個(gè)不同tab頁(yè)面之間如何請(qǐng)求交互

  18. tcp鏈接為什么不能為兩次握手

  19. tcp攻擊與防范

  20. 301和302狀態(tài)碼

  21. http2.0頭部壓縮

  22. TCP的三次握手和四次揮手,為什么不是兩次握手?為什么揮手多一次呢

  23. 網(wǎng)絡(luò)中的ACK; SYN; FIN都是什么

  24. http瀏覽器緩存機(jī)制
    25. 304狀態(tài)碼

  25. 500狀態(tài)碼具體場(chǎng)景

  26. DNS原理

  27. CND原理

  28. osi七層模型每層分別是什么,http在哪層,tcp在哪層

  29. HTTP協(xié)議的ETag

  30. head和get的區(qū)別

  31. *ssl握手過(guò)程,非對(duì)稱加密和對(duì)稱加密的區(qū)別

  32. *前端緩存

  33. 滑動(dòng)窗口
    35. 前端安全

  34. 計(jì)算機(jī)網(wǎng)絡(luò)的五層協(xié)議

  35. HTTPS為什么要使用一個(gè)對(duì)稱加密和非對(duì)稱加密相結(jié)合
    39.Http與Https的基本概念和他們的區(qū)別

  36. tcp粘包

  37. restful級(jí)別

1. http2.0

首先補(bǔ)充一下,http和https的區(qū)別,相比于http,https是基于ssl加密的http協(xié)議
簡(jiǎn)要概括:http2.0是基于1999年發(fā)布的http1.0之后的首次更新。
提升訪問(wèn)速度(可以對(duì)于,請(qǐng)求資源所需時(shí)間更少,訪問(wèn)速度更快,相比http1.0)

允許多路復(fù)用:多路復(fù)用允許同時(shí)通過(guò)單一的HTTP/2連接發(fā)送多重請(qǐng)求-響應(yīng)信息。改善了:在http1.1中,瀏覽器客戶端在同一時(shí)間,針對(duì)同一域名下的請(qǐng)求有一定數(shù)量限制(連接數(shù)量),超過(guò)限制會(huì)被阻塞。

二進(jìn)制分幀:HTTP2.0會(huì)將所有的傳輸信息分割為更小的信息或者幀,并對(duì)他們進(jìn)行二進(jìn)制編碼,他采用二進(jìn)制格式傳輸數(shù)據(jù)而不是1.x的文本格式

頭部壓縮
1.x版本中,首部用文本格式傳輸
2.0版本采用HPACK壓縮格式壓縮頭部
(靜態(tài)字典)索引
服務(wù)器端推送
服務(wù)器端推送使得服務(wù)器可以預(yù)測(cè)客戶端需要的資源,主動(dòng)推送到客戶端。
例如:客戶端請(qǐng)求index.html,服務(wù)器端能夠額外推送script.js和style.css。
實(shí)現(xiàn)原理就是客戶端發(fā)出頁(yè)面請(qǐng)求時(shí),服務(wù)器端能夠分析這個(gè)頁(yè)面所依賴的其他資源,主動(dòng)推送到客戶端的緩存,當(dāng)客戶端收到原始網(wǎng)頁(yè)的請(qǐng)求時(shí),它需要的資源已經(jīng)位于緩存。
針對(duì)每一個(gè)希望發(fā)送的資源,服務(wù)器會(huì)發(fā)送一個(gè)PUSH_PROMISE幀,客戶端可以通過(guò)發(fā)送RST_STREAM幀來(lái)拒絕推送(當(dāng)資源已經(jīng)位于緩存)。這一步的操作先于父響應(yīng)(index.html),客戶端了解到服務(wù)器端打算推送哪些資源,就不會(huì)再為這些資源創(chuàng)建重復(fù)請(qǐng)求。當(dāng)客戶端收到index.html的響應(yīng)時(shí),script.js和style.css已經(jīng)位于緩存。

2. TCP三次握手與四次揮手

三次握手
所謂的三次握手即TCP連接的建立。這個(gè)連接必須是一方主動(dòng)打開(kāi),另一方被動(dòng)打開(kāi)的。以下為客戶端主動(dòng)發(fā)起連接的圖解:

  • 確認(rèn)ACK:占1位,僅當(dāng)ACK=1時(shí),確認(rèn)號(hào)字段才有效。ACK=0時(shí),確認(rèn)號(hào)無(wú)效

  • 同步SYN:連接建立時(shí)用于同步序號(hào)。當(dāng)SYN=1,ACK=0時(shí)表示:這是一個(gè)連接請(qǐng)求報(bào)文段。若同意連接,則在響應(yīng)報(bào)文段中使得SYN=1,ACK=1。因此,SYN=1表示這是一個(gè)連接請(qǐng)求,或連接接受報(bào)文。SYN這個(gè)標(biāo)志位只有在TCP建產(chǎn)連接時(shí)才會(huì)被置1,握手完成后SYN標(biāo)志位被置0。

握手之前主動(dòng)打開(kāi)連接的客戶端結(jié)束CLOSED階段,被動(dòng)打開(kāi)的服務(wù)器端也結(jié)束CLOSED階段,并進(jìn)入LISTEN階段。隨后開(kāi)始“三次握手”:

(1)首先客戶端向服務(wù)器端發(fā)送一段TCP報(bào)文,其中:

標(biāo)記位為SYN,表示“請(qǐng)求建立新連接”;
序號(hào)為Seq=X(X一般為1);
隨后客戶端進(jìn)入SYN-SENT階段。
(2)服務(wù)器端接收到來(lái)自客戶端的TCP報(bào)文之后,結(jié)束LISTEN階段。并返回一段TCP報(bào)文,其中:

標(biāo)志位為SYN和ACK,表示“確認(rèn)客戶端的報(bào)文Seq序號(hào)有效,服務(wù)器能正常接收客戶端發(fā)送的數(shù)據(jù),并同意創(chuàng)建新連接”(即告訴客戶端,服務(wù)器收到了你的數(shù)據(jù));
序號(hào)為Seq=y;
確認(rèn)號(hào)為Ack=x+1,表示收到客戶端的序號(hào)Seq并將其值加1作為自己確認(rèn)號(hào)Ack的值;隨后服務(wù)器端進(jìn)入SYN-RCVD階段。
(3)客戶端接收到來(lái)自服務(wù)器端的確認(rèn)收到數(shù)據(jù)的TCP報(bào)文之后,明確了從客戶端到服務(wù)器的數(shù)據(jù)傳輸是正常的,結(jié)束SYN-SENT階段。并返回最后一段TCP報(bào)文。其中:

標(biāo)志位為ACK,表示“確認(rèn)收到服務(wù)器端同意連接的信號(hào)”(即告訴服務(wù)器,我知道你收到我發(fā)的數(shù)據(jù)了);
序號(hào)為Seq=x+1,表示收到服務(wù)器端的確認(rèn)號(hào)Ack,并將其值作為自己的序號(hào)值;
確認(rèn)號(hào)為Ack=y+1,表示收到服務(wù)器端序號(hào)Seq,并將其值加1作為自己的確認(rèn)號(hào)Ack的值;
隨后客戶端進(jìn)入ESTABLISHED階段。
服務(wù)器收到來(lái)自客戶端的“確認(rèn)收到服務(wù)器數(shù)據(jù)”的TCP報(bào)文之后,明確了從服務(wù)器到客戶端的數(shù)據(jù)傳輸是正常的。結(jié)束SYN-SENT階段,進(jìn)入ESTABLISHED階段。

在客戶端與服務(wù)器端傳輸?shù)腡CP報(bào)文中,雙方的確認(rèn)號(hào)Ack和序號(hào)Seq的值,都是在彼此Ack和Seq值的基礎(chǔ)上進(jìn)行計(jì)算的,這樣做保證了TCP報(bào)文傳輸?shù)倪B貫性。一旦出現(xiàn)某一方發(fā)出的TCP報(bào)文丟失,便無(wú)法繼續(xù)"握手",以此確保了"三次握手"的順利完成。

此后客戶端和服務(wù)器端進(jìn)行正常的數(shù)據(jù)傳輸。這就是“三次握手”的過(guò)程。

為什么要進(jìn)行第三次握手?
為了防止服務(wù)器端開(kāi)啟一些無(wú)用的連接增加服務(wù)器開(kāi)銷以及防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到了服務(wù)端,因而產(chǎn)生錯(cuò)誤。

由于網(wǎng)絡(luò)傳輸是有延時(shí)的(要通過(guò)網(wǎng)絡(luò)光纖和各種中間代理服務(wù)器),在傳輸?shù)倪^(guò)程中,比如客戶端發(fā)起了SYN=1創(chuàng)建連接的請(qǐng)求(第一次握手)。

如果服務(wù)器端就直接創(chuàng)建了這個(gè)連接并返回包含SYN、ACK和Seq等內(nèi)容的數(shù)據(jù)包給客戶端,這個(gè)數(shù)據(jù)包因?yàn)榫W(wǎng)絡(luò)傳輸?shù)脑騺G失了,丟失之后客戶端就一直沒(méi)有接收到服務(wù)器返回的數(shù)據(jù)包。

客戶端可能設(shè)置了一個(gè)超時(shí)時(shí)間,時(shí)間到了就關(guān)閉了連接創(chuàng)建的請(qǐng)求。再重新發(fā)出創(chuàng)建連接的請(qǐng)求,而服務(wù)器端是不知道的,如果沒(méi)有第三次握手告訴服務(wù)器端客戶端收的到服務(wù)器端傳輸?shù)臄?shù)據(jù)的話,

服務(wù)器端是不知道客戶端有沒(méi)有接收到服務(wù)器端返回的信息的。

這個(gè)過(guò)程可理解為:


這樣沒(méi)有給服務(wù)器端一個(gè)創(chuàng)建還是關(guān)閉連接端口的請(qǐng)求,服務(wù)器端的端口就一直開(kāi)著,等到客戶端因超時(shí)重新發(fā)出請(qǐng)求時(shí),服務(wù)器就會(huì)重新開(kāi)啟一個(gè)端口連接。那么服務(wù)器端上沒(méi)有接收到請(qǐng)求數(shù)據(jù)的上一個(gè)端口就一直開(kāi)著,長(zhǎng)此以往,這樣的端口多了,就會(huì)造成服務(wù)器端開(kāi)銷的嚴(yán)重浪費(fèi)。

還有一種情況是已經(jīng)失效的客戶端發(fā)出的請(qǐng)求信息,由于某種原因傳輸?shù)搅朔?wù)器端,服務(wù)器端以為是客戶端發(fā)出的有效請(qǐng)求,接收后產(chǎn)生錯(cuò)誤。

所以我們需要“第三次握手”來(lái)確認(rèn)這個(gè)過(guò)程,讓客戶端和服務(wù)器端能夠及時(shí)地察覺(jué)到因?yàn)榫W(wǎng)絡(luò)等一些問(wèn)題導(dǎo)致的連接創(chuàng)建失敗,這樣服務(wù)器端的端口就可以關(guān)閉了不用一直等待。

也可以這樣理解:“第三次握手”是客戶端向服務(wù)器端發(fā)送數(shù)據(jù),這個(gè)數(shù)據(jù)就是要告訴服務(wù)器,客戶端有沒(méi)有收到服務(wù)器“第二次握手”時(shí)傳過(guò)去的數(shù)據(jù)。若發(fā)送的這個(gè)數(shù)據(jù)是“收到了”的信息,接收后服務(wù)器就正常建立TCP連接,否則建立TCP連接失敗,服務(wù)器關(guān)閉連接端口。由此減少服務(wù)器開(kāi)銷和接收到失效請(qǐng)求發(fā)生的錯(cuò)誤。

抓包驗(yàn)證
下面是用抓包工具抓到的一些數(shù)據(jù)包,可用來(lái)分析TCP的三次握手:


圖中顯示的就是完整的TCP連接的”三次握手”過(guò)程。在52528 -> 80中,52528是本地(客戶端)端口,80是服務(wù)器的端口。80端口和52528端口之間的三次來(lái)回就是"三次握手"過(guò)程。

注意到”第一次握手”客戶端發(fā)送的TCP報(bào)文中以[SYN]作為標(biāo)志位,并且客戶端序號(hào)Seq=0;

接下來(lái)”第二次握手”服務(wù)器返回的TCP報(bào)文中以[SYN,ACK]作為標(biāo)志位;并且服務(wù)器端序號(hào)Seq=0;確認(rèn)號(hào)Ack=1(“第一次握手”中客戶端序號(hào)Seq的值+1);

最后”第三次握手”客戶端再向服務(wù)器端發(fā)送的TCP報(bào)文中以[ACK]作為標(biāo)志位;

其中客戶端序號(hào)Seq=1(“第二次握手”中服務(wù)器端確認(rèn)號(hào)Ack的值);確認(rèn)號(hào)Ack=1(“第二次握手”中服務(wù)器端序號(hào)Seq的值+1)。

這就完成了”三次握手”的過(guò)程,符合前面分析的結(jié)果。

四次揮手


(1)首先客戶端想要釋放連接,向服務(wù)器端發(fā)送一段TCP報(bào)文,其中:

標(biāo)記位為FIN,表示“請(qǐng)求釋放連接“;
序號(hào)為Seq=U;
隨后客戶端進(jìn)入FIN-WAIT-1階段,即半關(guān)閉階段。并且停止在客戶端到服務(wù)器端方向上發(fā)送數(shù)據(jù),但是客戶端仍然能接收從服務(wù)器端傳輸過(guò)來(lái)的數(shù)據(jù)。
注意:這里不發(fā)送的是正常連接時(shí)傳輸?shù)臄?shù)據(jù)(非確認(rèn)報(bào)文),而不是一切數(shù)據(jù),所以客戶端仍然能發(fā)送ACK確認(rèn)報(bào)文。

(2)服務(wù)器端接收到從客戶端發(fā)出的TCP報(bào)文之后,確認(rèn)了客戶端想要釋放連接,隨后服務(wù)器端結(jié)束ESTABLISHED階段,進(jìn)入CLOSE-WAIT階段(半關(guān)閉狀態(tài))并返回一段TCP報(bào)文,其中:

標(biāo)記位為ACK,表示“接收到客戶端發(fā)送的釋放連接的請(qǐng)求”;
序號(hào)為Seq=V;
確認(rèn)號(hào)為Ack=U+1,表示是在收到客戶端報(bào)文的基礎(chǔ)上,將其序號(hào)Seq值加1作為本段報(bào)文確認(rèn)號(hào)Ack的值;
隨后服務(wù)器端開(kāi)始準(zhǔn)備釋放服務(wù)器端到客戶端方向上的連接。
客戶端收到從服務(wù)器端發(fā)出的TCP報(bào)文之后,確認(rèn)了服務(wù)器收到了客戶端發(fā)出的釋放連接請(qǐng)求,隨后客戶端結(jié)束FIN-WAIT-1階段,進(jìn)入FIN-WAIT-2階段

前"兩次揮手"既讓服務(wù)器端知道了客戶端想要釋放連接,也讓客戶端知道了服務(wù)器端了解了自己想要釋放連接的請(qǐng)求。于是,可以確認(rèn)關(guān)閉客戶端到服務(wù)器端方向上的連接了

(3)服務(wù)器端自從發(fā)出ACK確認(rèn)報(bào)文之后,經(jīng)過(guò)CLOSED-WAIT階段,做好了釋放服務(wù)器端到客戶端方向上的連接準(zhǔn)備,再次向客戶端發(fā)出一段TCP報(bào)文,其中:

標(biāo)記位為FIN,ACK,表示“已經(jīng)準(zhǔn)備好釋放連接了”。注意:這里的ACK并不是確認(rèn)收到服務(wù)器端報(bào)文的確認(rèn)報(bào)文。
序號(hào)為Seq=W;
確認(rèn)號(hào)為Ack=U+1;表示是在收到客戶端報(bào)文的基礎(chǔ)上,將其序號(hào)Seq值加1作為本段報(bào)文確認(rèn)號(hào)Ack的值。
隨后服務(wù)器端結(jié)束CLOSE-WAIT階段,進(jìn)入LAST-ACK階段。并且停止在服務(wù)器端到客戶端的方向上發(fā)送數(shù)據(jù),但是服務(wù)器端仍然能夠接收從客戶端傳輸過(guò)來(lái)的數(shù)據(jù)。

(4)客戶端收到從服務(wù)器端發(fā)出的TCP報(bào)文,確認(rèn)了服務(wù)器端已做好釋放連接的準(zhǔn)備,結(jié)束FIN-WAIT-2階段,進(jìn)入TIME-WAIT階段,并向服務(wù)器端發(fā)送一段報(bào)文,其中:

標(biāo)記位為ACK,表示“接收到服務(wù)器準(zhǔn)備好釋放連接的信號(hào)”。
序號(hào)為Seq=U+1;表示是在收到了服務(wù)器端報(bào)文的基礎(chǔ)上,將其確認(rèn)號(hào)Ack值作為本段報(bào)文序號(hào)的值。
確認(rèn)號(hào)為Ack=W+1;表示是在收到了服務(wù)器端報(bào)文的基礎(chǔ)上,將其序號(hào)Seq值作為本段報(bào)文確認(rèn)號(hào)的值。
隨后客戶端開(kāi)始在TIME-WAIT階段等待2MSL

為什么要客戶端要等待2MSL呢?見(jiàn)后文。

服務(wù)器端收到從客戶端發(fā)出的TCP報(bào)文之后結(jié)束LAST-ACK階段,進(jìn)入CLOSED階段。由此正式確認(rèn)關(guān)閉服務(wù)器端到客戶端方向上的連接。

客戶端等待完2MSL之后,結(jié)束TIME-WAIT階段,進(jìn)入CLOSED階段,由此完成“四次揮手”。

后“兩次揮手”既讓客戶端知道了服務(wù)器端準(zhǔn)備好釋放連接了,也讓服務(wù)器端知道了客戶端了解了自己準(zhǔn)備好釋放連接了。于是,可以確認(rèn)關(guān)閉服務(wù)器端到客戶端方向上的連接了,由此完成“四次揮手”。

與“三次揮手”一樣,在客戶端與服務(wù)器端傳輸?shù)腡CP報(bào)文中,雙方的確認(rèn)號(hào)Ack和序號(hào)Seq的值,都是在彼此Ack和Seq值的基礎(chǔ)上進(jìn)行計(jì)算的,這樣做保證了TCP報(bào)文傳輸?shù)倪B貫性,一旦出現(xiàn)某一方發(fā)出的TCP報(bào)文丟失,便無(wú)法繼續(xù)"揮手",以此確保了"四次揮手"的順利完成。

為什么“握手”是三次,“揮手”卻要四次?
TCP建立連接時(shí)之所以只需要"三次握手",是因?yàn)樵诘诙?握手"過(guò)程中,服務(wù)器端發(fā)送給客戶端的TCP報(bào)文是以SYN與ACK作為標(biāo)志位的。SYN是請(qǐng)求連接標(biāo)志,表示服務(wù)器端同意建立連接;ACK是確認(rèn)報(bào)文,表示告訴客戶端,服務(wù)器端收到了它的請(qǐng)求報(bào)文。

即SYN建立連接報(bào)文與ACK確認(rèn)接收?qǐng)?bào)文是在同一次"握手"當(dāng)中傳輸?shù)模?三次握手"不多也不少,正好讓雙方明確彼此信息互通。

TCP釋放連接時(shí)之所以需要“四次揮手”,是因?yàn)镕IN釋放連接報(bào)文與ACK確認(rèn)接收?qǐng)?bào)文是分別由第二次和第三次"握手"傳輸?shù)?。為何建立連接時(shí)一起傳輸,釋放連接時(shí)卻要分開(kāi)傳輸?

建立連接時(shí),被動(dòng)方服務(wù)器端結(jié)束CLOSED階段進(jìn)入“握手”階段并不需要任何準(zhǔn)備,可以直接返回SYN和ACK報(bào)文,開(kāi)始建立連接。
釋放連接時(shí),被動(dòng)方服務(wù)器,突然收到主動(dòng)方客戶端釋放連接的請(qǐng)求時(shí)并不能立即釋放連接,因?yàn)檫€有必要的數(shù)據(jù)需要處理,所以服務(wù)器先返回ACK確認(rèn)收到報(bào)文,經(jīng)過(guò)CLOSE-WAIT階段準(zhǔn)備好釋放連接之后,才能返回FIN釋放連接報(bào)文。

為什么客戶端在TIME-WAIT階段要等2MSL?
為的是確認(rèn)服務(wù)器端是否收到客戶端發(fā)出的ACK確認(rèn)報(bào)文

當(dāng)客戶端發(fā)出最后的ACK確認(rèn)報(bào)文時(shí),并不能確定服務(wù)器端能夠收到該段報(bào)文。所以客戶端在發(fā)送完ACK確認(rèn)報(bào)文之后,會(huì)設(shè)置一個(gè)時(shí)長(zhǎng)為2MSL的計(jì)時(shí)器。MSL指的是Maximum Segment Lifetime:一段TCP報(bào)文在傳輸過(guò)程中的最大生命周期。2MSL即是服務(wù)器端發(fā)出為FIN報(bào)文和客戶端發(fā)出的ACK確認(rèn)報(bào)文所能保持有效的最大時(shí)長(zhǎng)。

服務(wù)器端在1MSL內(nèi)沒(méi)有收到客戶端發(fā)出的ACK確認(rèn)報(bào)文,就會(huì)再次向客戶端發(fā)出FIN報(bào)文;

如果客戶端在2MSL內(nèi),再次收到了來(lái)自服務(wù)器端的FIN報(bào)文,說(shuō)明服務(wù)器端由于各種原因沒(méi)有接收到客戶端發(fā)出的ACK確認(rèn)報(bào)文??蛻舳嗽俅蜗蚍?wù)器端發(fā)出ACK確認(rèn)報(bào)文,計(jì)時(shí)器重置,重新開(kāi)始2MSL的計(jì)時(shí);
否則客戶端在2MSL內(nèi)沒(méi)有再次收到來(lái)自服務(wù)器端的FIN報(bào)文,說(shuō)明服務(wù)器端正常接收了ACK確認(rèn)報(bào)文,客戶端可以進(jìn)入CLOSED階段,完成“四次揮手”。

所以,客戶端要經(jīng)歷時(shí)長(zhǎng)為2SML的TIME-WAIT階段;這也是為什么客戶端比服務(wù)器端晚進(jìn)入CLOSED階段的原因

3.HTTPS工作原理

1.Client發(fā)起一個(gè)HTTPS(比如https://juejin.im/user/5a9a9cdcf265da238b7d771c)的請(qǐng)求,根據(jù)RFC2818的規(guī)定,Client知道需要連接Server的443(默認(rèn))端口。

2.Server把事先配置好的公鑰證書(shū)(public key certificate)返回給客戶端。

3.Client驗(yàn)證公鑰證書(shū):比如是否在有效期內(nèi),證書(shū)的用途是不是匹配Client請(qǐng)求的站點(diǎn),是不是在CRL吊銷列表里面,它的上一級(jí)證書(shū)是否有效,這是一個(gè)遞歸的過(guò)程,直到驗(yàn)證到根證書(shū)(操作系統(tǒng)內(nèi)置的Root證書(shū)或者Client內(nèi)置的Root證書(shū))。如果驗(yàn)證通過(guò)則繼續(xù),不通過(guò)則顯示警告信息。

4.Client使用偽隨機(jī)數(shù)生成器生成加密所使用的對(duì)稱密鑰,然后用證書(shū)的公鑰加密這個(gè)對(duì)稱密鑰,發(fā)給Server。

5.Server使用自己的私鑰(private key)解密這個(gè)消息,得到對(duì)稱密鑰。至此,Client和Server雙方都持有了相同的對(duì)稱密鑰。

6.Server使用對(duì)稱密鑰加密“明文內(nèi)容A”,發(fā)送給Client。

7.Client使用對(duì)稱密鑰解密響應(yīng)的密文,得到“明文內(nèi)容A”。

8.Client再次發(fā)起HTTPS的請(qǐng)求,使用對(duì)稱密鑰加密請(qǐng)求的“明文內(nèi)容B”,然后Server使用對(duì)稱密鑰解密密文,得到“明文內(nèi)容B”。

小結(jié)
https就是使用了非對(duì)稱加密(一對(duì)公私鑰進(jìn)行加密解密)進(jìn)行公鑰傳輸,然后客戶端通過(guò)公鑰加密將自己的私鑰發(fā)給服務(wù)端,以后就可以使用這個(gè)私鑰進(jìn)行消息的收發(fā)了

4. 常用的HTTP方法

GET:用于請(qǐng)求訪問(wèn)已經(jīng)被URI(統(tǒng)一資源標(biāo)識(shí)符)識(shí)別的資源,可以通過(guò)URL傳參給服務(wù)器
POST:用于傳輸信息給服務(wù)器,主要功能與GET方法類似,但一般推薦使用POST方式。
PUT: 傳輸文件,報(bào)文主體中包含文件內(nèi)容,保存到對(duì)應(yīng)URI位置。
HEAD: 獲得報(bào)文首部,與GET方法類似,只是不返回報(bào)文主體,一般用于驗(yàn)證URI是否有效。
DELETE:刪除文件,與PUT方法相反,刪除對(duì)應(yīng)URI位置的文件。
OPTIONS:查詢相應(yīng)URI支持的HTTP方法。

5.GET方法與POST方法的區(qū)別

  1. get重點(diǎn)在從服務(wù)器上獲取資源,post重點(diǎn)在向服務(wù)器發(fā)送數(shù)據(jù)
  2. get傳輸數(shù)據(jù)是通過(guò)URL請(qǐng)求,以field(字段)= value的形式,置于URL后,并用"?"連接,多個(gè)請(qǐng)求數(shù)據(jù)間用"&"連接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,這個(gè)過(guò)程用戶是可見(jiàn)的;
    post傳輸數(shù)據(jù)通過(guò)Http的post機(jī)制,將字段與對(duì)應(yīng)值封存在請(qǐng)求實(shí)體中發(fā)送給服務(wù)器,這個(gè)過(guò)程對(duì)用戶是不可見(jiàn)的;
  3. Get傳輸?shù)臄?shù)據(jù)量小,因?yàn)槭躑RL長(zhǎng)度限制,但效率較高;1024k
    Post可以傳輸大量數(shù)據(jù),所以上傳文件時(shí)只能用Post方式;
  4. get是不安全的,因?yàn)閁RL是可見(jiàn)的,可能會(huì)泄露私密信息,如密碼等;
    post較get安全性較高;
  5. get方式只能支持ASCII字符,向服務(wù)器傳的中文字符可能會(huì)亂碼。
    post支持標(biāo)準(zhǔn)字符集,可以正確傳遞中文字符。

6.HTTP請(qǐng)求報(bào)文與響應(yīng)報(bào)文格式

請(qǐng)求報(bào)文


響應(yīng)報(bào)文

通用首部字段(請(qǐng)求報(bào)文與響應(yīng)報(bào)文都會(huì)使用的首部字段)

  • Date:創(chuàng)建報(bào)文時(shí)間
  • Connection:連接的管理
  • Cache-Control:緩存的控制
  • Transfer-Encoding:報(bào)文主體的傳輸編碼方式

請(qǐng)求首部字段(請(qǐng)求報(bào)文會(huì)使用的首部字段)

  • Host:請(qǐng)求資源所在服務(wù)器
  • Accept:可處理的媒體類型
  • Accept-Charset:可接收的字符集
  • Accept-Encoding:可接受的內(nèi)容編碼
  • Accept-Language:可接受的自然語(yǔ)言

響應(yīng)首部字段(響應(yīng)報(bào)文會(huì)使用的首部字段)

  • Accept-Ranges:可接受的字節(jié)范圍
  • Location:令客戶端重新定向到的URI
  • Server:HTTP服務(wù)器的安裝信息

實(shí)體首部字段(請(qǐng)求報(bào)文與響應(yīng)報(bào)文的的實(shí)體部分使用的首部字段)

  • Allow:資源可支持的HTTP方法
  • Content-Type:實(shí)體主類的類型
  • Content-Encoding:實(shí)體主體適用的編碼方式
  • Content-Language:實(shí)體主體的自然語(yǔ)言
  • Content-Length:實(shí)體主體的的字節(jié)數(shù)
  • Content-Range:實(shí)體主體的位置范圍,一般用于發(fā)出部分請(qǐng)求時(shí)使用

7. 常見(jiàn)的HTTP狀態(tài)碼

2xx : 代表服務(wù)端已經(jīng)成功接收并處理了該請(qǐng)求

200——服務(wù)器成功返回網(wǎng)頁(yè)
201——提示知道新文件的URL
202——接受和處理、但處理未完成
203——返回信息不確定或不完整
204——請(qǐng)求收到,但返回信息為空
205——服務(wù)器完成了請(qǐng)求,用戶代理必須復(fù)位當(dāng)前已經(jīng)瀏覽過(guò)的文件
206——服務(wù)器已經(jīng)完成了部分用戶的GET請(qǐng)求

3xx : 通常代表客戶端需要進(jìn)行進(jìn)一步請(qǐng)求用,常用來(lái)進(jìn)行重定向的狀態(tài)碼

300——請(qǐng)求的資源可在多處得到
301——?jiǎng)h除請(qǐng)求數(shù)據(jù)
302——在其他地址發(fā)現(xiàn)了請(qǐng)求數(shù)據(jù)
303——建議客戶訪問(wèn)其他URL或訪問(wèn)方式
304——客戶端已經(jīng)執(zhí)行了GET,但文件未變化
305——請(qǐng)求的資源必須從服務(wù)器指定的地址得到
306——前一版本HTTP中使用的代碼,現(xiàn)行版本中不再使用
307——申明請(qǐng)求的資源臨時(shí)性刪除

4xx : 通常表示客戶端請(qǐng)求有問(wèn)題

400——錯(cuò)誤請(qǐng)求,如語(yǔ)法錯(cuò)誤
401——請(qǐng)求授權(quán)失敗
402——保留有效ChargeTo頭響應(yīng)
403——請(qǐng)求不允許
404——請(qǐng)求的網(wǎng)頁(yè)不存在

5xx : 通常表示服務(wù)端內(nèi)部錯(cuò)誤
  • 500 : 服務(wù)端代碼出錯(cuò)
  • 502 : 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),從上游服務(wù)器接收到無(wú)效的響應(yīng)
  • 503: 服務(wù)器正在維護(hù)或者訪問(wèn)過(guò)載,過(guò)一段時(shí)間可能恢復(fù)正常
  • 504 : 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),未能及時(shí)從上游服務(wù)器(URI標(biāo)識(shí)出的服務(wù)器,例如HTTP、FTP、LDAP)或者輔助服務(wù)器(例如DNS)收到響應(yīng)

https://www.cnblogs.com/xflonga/p/9368993.html

8. 一個(gè)頁(yè)面從輸入 URL 到頁(yè)面加載顯示完成,這個(gè)過(guò)程中都發(fā)生了什么?

1. 地址欄輸入地址,瀏覽器自動(dòng)補(bǔ)全url,如果瀏覽器中有緩存且未過(guò)期直接使用緩存呈現(xiàn)頁(yè)面。
2. DNS解析:

查詢順序:瀏覽器緩存 > 系統(tǒng)緩存 > 路由器緩存 > ISP DNS緩存
如果緩存中沒(méi)有找到,就會(huì)向DNS服務(wù)器發(fā)送URL對(duì)應(yīng)IP查找域名

3. 客戶端與服務(wù)器進(jìn)行三次握手建立連接

“三次握手”的目的是“為了防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到了服務(wù)端,因而產(chǎn)生錯(cuò)誤”。
①客戶端先發(fā)送一個(gè)帶有SYN(synchronize)標(biāo)志的數(shù)據(jù)包給服務(wù)端,在一定的延遲時(shí)間內(nèi)等待服務(wù)端的回復(fù)。
②服務(wù)端收到數(shù)據(jù)包后,傳回一個(gè)帶有SYN/ACK標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息。
③客戶端收到后再發(fā)送一個(gè)帶有ACK標(biāo)志的數(shù)據(jù)包給接收端以示握手成功。
在這個(gè)過(guò)程中,如果發(fā)送端在規(guī)定延遲時(shí)間內(nèi)沒(méi)有收到回復(fù)則默認(rèn)接收方?jīng)]有收到請(qǐng)求,而再次發(fā)送,直到收到回復(fù)為止。

4. 瀏覽器向服務(wù)器發(fā)送http請(qǐng)求
5. 服務(wù)器收到請(qǐng)求,并從文檔空間中找到資源返回http響應(yīng)
6. 瀏覽器接受到http響應(yīng),檢查http header 狀態(tài)碼,做出不同的處理方式
  • 404顯示錯(cuò)誤頁(yè)面
  • 304使用緩存
  • 204頁(yè)面不會(huì)發(fā)生更新
  • 200進(jìn)行下一步
  • ...
7. 根據(jù)首部字段判斷是否啟用緩存

cache-control 可緩存
no-cache 每次使用緩存前跟服務(wù)器確認(rèn)
no-store 禁止緩存

8. 拿到index.html進(jìn)行解析成DOM樹(shù),遇到靜態(tài)文件css,js,image 向服務(wù)器請(qǐng)求下載,解析成對(duì)應(yīng)的DOM樹(shù),css樹(shù),開(kāi)始布局繪制

為達(dá)到更好的用戶體驗(yàn),呈現(xiàn)引擎會(huì)力求盡快將內(nèi)容顯示在屏幕上。它不必等到整個(gè) HTML 文檔解析完畢之后,就會(huì)開(kāi)始構(gòu)建呈現(xiàn)樹(shù)和設(shè)置布局。在不斷接收和處理來(lái)自網(wǎng)絡(luò)的其余內(nèi)容的同時(shí),呈現(xiàn)引擎會(huì)將部分內(nèi)容解析并顯示出來(lái)

9. 客戶端與服務(wù)器四次揮手?jǐn)嚅_(kāi)連接

終止TCP連接,就是指斷開(kāi)一個(gè)TCP連接時(shí),需要客戶端和服務(wù)端總共發(fā)送4個(gè)包以確認(rèn)連接的斷開(kāi)



①客戶端發(fā)送一個(gè)FIN,用來(lái)關(guān)閉客戶端到服務(wù)端的數(shù)據(jù)傳送,客戶端進(jìn)入FIN_WAIT_1狀態(tài)。
②服務(wù)端收到FIN后,發(fā)送一個(gè)ACK給客戶端,確認(rèn)序號(hào)為收到序號(hào)+1(與SYN相同,一個(gè)FIN占用一個(gè)序號(hào)),服務(wù)端進(jìn)入CLOSE_WAIT狀態(tài)。
③服務(wù)端發(fā)送一個(gè)FIN,用來(lái)關(guān)閉服務(wù)端到客戶端的數(shù)據(jù)傳送,服務(wù)端進(jìn)入LAST_ACK狀態(tài)。
④客戶端收到FIN后,客戶端進(jìn)入TIME_WAIT狀態(tài),接著發(fā)送一個(gè)ACK給服務(wù)端,確認(rèn)序號(hào)為收到序號(hào)+1,服務(wù)端進(jìn)入CLOSED狀態(tài),完成四次揮手。

9. HTTP優(yōu)化方案

  1. TCP復(fù)用:TCP連接復(fù)用是將多個(gè)客戶端的HTTP請(qǐng)求復(fù)用到一個(gè)服務(wù)器端TCP連接上,而HTTP復(fù)用則是一個(gè)客戶端的多個(gè)HTTP請(qǐng)求通過(guò)一個(gè)TCP連接進(jìn)行處理。前者是負(fù)載均衡設(shè)備的獨(dú)特功能;而后者是HTTP 1.1協(xié)議所支持的新功能,目前被大多數(shù)瀏覽器所支持。
  2. 內(nèi)容緩存:將經(jīng)常用到的內(nèi)容進(jìn)行緩存起來(lái),那么客戶端就可以直接在內(nèi)存中獲取相應(yīng)的數(shù)據(jù)了。
  3. 壓縮:將文本數(shù)據(jù)進(jìn)行壓縮,減少帶寬
  4. SSL加速(SSL Acceleration):使用SSL協(xié)議對(duì)HTTP協(xié)議進(jìn)行加密,在通道內(nèi)加密并加速
  5. TCP緩沖:通過(guò)采用TCP緩沖技術(shù),可以提高服務(wù)器端響應(yīng)時(shí)間和處理效率,減少由于通信鏈路問(wèn)題給服務(wù)器造成的連接負(fù)擔(dān)。

9. localStorage. sessionStorage、 Cookie不同點(diǎn)

  • 存儲(chǔ)大小的不同:
    1. localStorage的大小一般為5M
    2. sessionStorage的大小一般為5M
    3. cookies的大小一般為4K
  • 有效期不同:
    1. localStorage的有效期為永久有效,除非你進(jìn)行手動(dòng)刪除。
    2. sessionStorage在當(dāng)前會(huì)話下有效,關(guān)閉頁(yè)面或者瀏覽器時(shí)會(huì)被清空。
    3. cookies在設(shè)置的有效之前有效,當(dāng)超過(guò)有效期便會(huì)失效。
  • 與服務(wù)器端的通信
    1. localStorage不參與服務(wù)器端的通信
    2. sessionStorage不參與服務(wù)器端的通信。
    3. cookies參與服務(wù)器端通信,每次都會(huì)存在http的頭信息中。(如果使用cookie保存過(guò)多數(shù)據(jù)會(huì)帶來(lái)性能問(wèn)題)
  • localStorage和sessionStorage的作用域的區(qū)別詳解
    1. 不同瀏覽器無(wú)法共享localStorage或sessionStorage中的信息。
    2. 相同瀏覽器的不同頁(yè)面間可以共享相同的localStorage (頁(yè)面屬于相同域名和端口), 但是不同頁(yè)面或標(biāo)簽頁(yè)間無(wú)法共享sessionStorage的信息。

11. get和post請(qǐng)求在緩存方面的區(qū)別

  • get請(qǐng)求類似于查找的過(guò)程,用戶獲取數(shù)據(jù),可以不用每次都與數(shù)據(jù)庫(kù)連接,所以可以使用緩存。
  • post不同,post做的一般是修改和刪除的工作,所以必須與數(shù)據(jù)庫(kù)交互,所以不能使用緩存。因此get請(qǐng)求適合于請(qǐng)求緩存。

12. cookie session區(qū)別

  1. cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。

  2. cookie不是很安全,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙
    考慮到安全應(yīng)當(dāng)使用session。

  3. session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問(wèn)增多,會(huì)比較占用你服務(wù)器的性能
    考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE。

  4. 單個(gè)cookie保存的數(shù)據(jù)不能超過(guò)4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie。

13. cookie屬性

拓展https://www.chinaz.com/web/2012/0905/272814.shtml
httponly http://blog.itpub.net/31556438/viewspace-2557286/
samesite屬性http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html

14. https詳細(xì)過(guò)程

15. TCP擁塞控制

16. TCP和UDP

https://blog.csdn.net/weixin_42092787/article/details/107668987

17. 兩個(gè)不同tab頁(yè)面之間如何請(qǐng)求交互

18. tcp鏈接為什么不能為兩次握手

19. tcp攻擊與防范

20. 301和302狀態(tài)碼

21. http2.0頭部壓縮

22. TCP的三次握手和四次揮手,為什么不是兩次握手?為什么揮手多一次呢

23. 網(wǎng)絡(luò)中的ACK; SYN; FIN都是什么

  • SYN表示建立連接,
  • FIN表示關(guān)閉連接,
  • ACK表示響應(yīng)

第一次握手:主機(jī)A發(fā)送位碼為syn=1,隨機(jī)產(chǎn)生seq number=1234567的數(shù)據(jù)包到服務(wù)器,主機(jī)B由SYN=1知道,A要求建立聯(lián)機(jī);

第二次握手:主機(jī)B收到請(qǐng)求后要確認(rèn)聯(lián)機(jī)信息,向A發(fā)送ack number=(主機(jī)A的seq+1),syn=1,ack=1,隨機(jī)產(chǎn)生seq=7654321的包;

第三次握手:主機(jī)A收到后檢查ack number是否正確,即第一次發(fā)送的seq number+1,以及位碼ack是否為1,若正確,主機(jī)A會(huì)再發(fā)送ack number=(主機(jī)B的seq+1),ack=1,主機(jī)B收到后確認(rèn)seq值與ack=1則連接建立成功。 完成三次握手,主機(jī)A與主機(jī)B開(kāi)始傳送數(shù)據(jù)。

24. http瀏覽器緩存機(jī)制

25. 304狀態(tài)碼

200表示成功,服務(wù)器已成功處理了請(qǐng)求,通常表示為服務(wù)器提供了請(qǐng)求的網(wǎng)頁(yè),304表示未修改,自從上次請(qǐng)求后,請(qǐng)求的網(wǎng)頁(yè)未修改過(guò),服務(wù)器返回此響應(yīng)時(shí)不會(huì)返回網(wǎng)頁(yè)內(nèi)容
https://blog.csdn.net/huwei2003/article/details/70139062?utm_term=304%E7%8A%B6%E6%80%81%E7%A0%81%E6%98%AF%E4%BB%80%E4%B9%88&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-0-70139062&spm=3001.4430

26. 500狀態(tài)碼具體場(chǎng)景

http://www.xusseo.com/seoswgwsm/77367.html

27. DNS原理

https://www.cnblogs.com/gopark/p/8430916.html

28. CND原理

CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。CDN的基本原理是廣泛采用各種緩存服務(wù)器,將這些緩存服務(wù)器分布到用戶訪問(wèn)相對(duì)集中的地區(qū)或網(wǎng)絡(luò)中,在用戶訪問(wèn)網(wǎng)站時(shí),利用全局負(fù)載技術(shù)將用戶的訪問(wèn)指向距離最近的工作正常的緩存服務(wù)器上,由緩存服務(wù)器直接響
https://blog.csdn.net/xiangzhihong8/article/details/83147542

29. osi七層模型每層分別是什么,http在哪層,tcp在哪層

https://blog.csdn.net/weixin_42092787/article/details/107632967

30. HTTP協(xié)議的ETag

31. head和get的區(qū)別

32. *ssl握手過(guò)程,非對(duì)稱加密和對(duì)稱加密的區(qū)別

https://blog.csdn.net/qq_29689487/article/details/81634057

33. *前端緩存

34. 滑動(dòng)窗口

35. 前端安全

https://www.cnblogs.com/zhiying/p/11018331.html
XSS攻擊
DOS攻擊
https://blog.csdn.net/fengyinchao/article/details/52303118

sql注入
dos注入

36. 計(jì)算機(jī)網(wǎng)絡(luò)的五層協(xié)議

37. HTTPS為什么要使用一個(gè)對(duì)稱加密和非對(duì)稱加密相結(jié)合

38. 一文讀懂http緩存(超詳細(xì))

39.Http與Https的基本概念和他們的區(qū)別

http的中文叫做超文本傳輸協(xié)議,它負(fù)責(zé)完成客戶端到服務(wù)端的一系列操作,是專門用來(lái)傳輸注入HTML的超媒體文檔等web內(nèi)容的協(xié)議,它是基于傳輸層的TCP協(xié)議的應(yīng)用層協(xié)議

https:https是基于安全套接字的http協(xié)議,也可以理解為是http+ssl/tls(數(shù)字證書(shū))的組合

http和https的區(qū)別:

  • HTTP 的 URL 以 http:// 開(kāi)頭,而 HTTPS 的 URL 以 https:// 開(kāi)頭
  • HTTP 是不安全的,而 HTTPS 是安全的
  • HTTP 標(biāo)準(zhǔn)端口是 80 ,而 HTTPS 的標(biāo)準(zhǔn)端口是 443
  • 在 OSI 網(wǎng)絡(luò)模型中,HTTPS的加密是在傳輸層完成的,因?yàn)镾SL是位于傳輸層的,TLS的前身是SSL,所以同理
  • HTTP無(wú)需認(rèn)證證書(shū),而https需要認(rèn)證證書(shū)

小結(jié):簡(jiǎn)單來(lái)說(shuō)http是用來(lái)進(jìn)行html等超媒體傳輸?shù)?但是http不安全,為了安全,使用證書(shū)SSL和HTTP的方式進(jìn)行數(shù)據(jù)傳輸,也就是HTTPS

40. TCP粘包

41. DNS解析過(guò)程

DNS根域名


由于 ICANN 管理著所有的頂級(jí)域名,所以它是最高一級(jí)的域名節(jié)點(diǎn),被稱為根域名(root domain)。在有些場(chǎng)合,www.example.com 被寫成www.example.com. ,即最后還會(huì)多出一個(gè)點(diǎn)。這個(gè)點(diǎn)就是根域名。

理論上,所有域名查詢都必須先查詢根域名,因?yàn)橹挥懈蛎拍芨嬖V你,某個(gè)頂級(jí)域名由哪臺(tái)服務(wù)器管理。事實(shí)上也確實(shí)如此,ICANN 維護(hù)著一張列表,里面記載著頂級(jí)域名和對(duì)應(yīng)的托管商。

比如,我要訪問(wèn)www.example.com ,就必須先詢問(wèn) ICANN 的根域名列表,它會(huì)告訴我.com域名由 Verisign 托管,我必須去找 Verisign,它會(huì)告訴我example.com服務(wù)器在哪里。

再比如,我要訪問(wèn)abc.xyz,也必須先去詢問(wèn)根域名列表,它會(huì)告訴我.xyz域名由 CentralNic 公司托管。根域名列表還記載,.google由谷歌公司托管,.apple由蘋果公司托管等等。

由于根域名列表很少變化,大多數(shù) DNS 服務(wù)商都會(huì)提供它的緩存,所以根域名的查詢事實(shí)上不是那么頻繁。

保存 DNS 根區(qū)文件的服務(wù)器,就叫做 DNS 根域名服務(wù)器(root name server)。


1、在瀏覽器中輸入www.qq.com域名,操作系統(tǒng)會(huì)先檢查自己本地的hosts文件是否有這個(gè)網(wǎng)址映射關(guān)系,如果有,就先調(diào)用這個(gè)IP地址映射,完成域名解析。

2、如果hosts里沒(méi)有這個(gè)域名的映射,則查找本地DNS解析器緩存,是否有這個(gè)網(wǎng)址映射關(guān)系,如果有,直接返回,完成域名解析。

3、如果hosts與本地DNS解析器緩存都沒(méi)有相應(yīng)的網(wǎng)址映射關(guān)系,首先會(huì)找TCP/ip參數(shù)中設(shè)置的首選DNS服務(wù)器,在此我們叫它本地DNS服務(wù)器,此服務(wù)器收到查詢時(shí),如果要查詢的域名,包含在本地配置區(qū)域資源中,則返回解析結(jié)果給客戶機(jī),完成域名解析,此解析具有權(quán)威性。

4、如果要查詢的域名,不由本地DNS服務(wù)器區(qū)域解析,但該服務(wù)器已緩存了此網(wǎng)址映射關(guān)系,則調(diào)用這個(gè)IP地址映射,完成域名解析,此解析不具有權(quán)威性。

5、如果本地DNS服務(wù)器本地區(qū)域文件與緩存解析都失效,則根據(jù)本地DNS服務(wù)器的設(shè)置(是否設(shè)置轉(zhuǎn)發(fā)器)進(jìn)行查詢,如果未用轉(zhuǎn)發(fā)模式,本地DNS就把請(qǐng)求發(fā)至13臺(tái)根DNS,根DNS服務(wù)器收到請(qǐng)求后會(huì)判斷這個(gè)域名(.com)是誰(shuí)來(lái)授權(quán)管理,并會(huì)返回一個(gè)負(fù)責(zé)該頂級(jí)域名服務(wù)器的一個(gè)IP。本地DNS服務(wù)器收到IP信息后,將會(huì)聯(lián)系負(fù)責(zé).com域的這臺(tái)服務(wù)器。這臺(tái)負(fù)責(zé).com域的服務(wù)器收到請(qǐng)求后,如果自己無(wú)法解析,它就會(huì)找一個(gè)管理.com域的下一級(jí)DNS服務(wù)器地址(qq.com)給本地DNS服務(wù)器。當(dāng)本地DNS服務(wù)器收到這個(gè)地址后,就會(huì)找qq.com域服務(wù)器,重復(fù)上面的動(dòng)作,進(jìn)行查詢,直至找到www.qq.com主機(jī)。

6、如果用的是轉(zhuǎn)發(fā)模式,此DNS服務(wù)器就會(huì)把請(qǐng)求轉(zhuǎn)發(fā)至上一級(jí)DNS服務(wù)器,由上一級(jí)服務(wù)器進(jìn)行解析,上一級(jí)服務(wù)器如果不能解析,或找根DNS或把轉(zhuǎn)請(qǐng)求轉(zhuǎn)至上上級(jí),以此循環(huán)。不管是本地DNS服務(wù)器用是是轉(zhuǎn)發(fā),還是根提示,最后都是把結(jié)果返回給本地DNS服務(wù)器,由此DNS服務(wù)器再返回給客戶機(jī)。
從客戶端到本地DNS服務(wù)器是屬于遞歸查詢,而DNS服務(wù)器之間就是的交互查詢就是迭代查詢。

42. restful級(jí)別

43. token詳解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容