欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
前端相關(guān)問(wèn)題
1、理解下從 域名 -> DNS -> IP -> TCP -> HTTP 的過(guò)程

步驟:
1、在瀏覽器輸入URL,URL解析;
2、DNS解析這個(gè)域名,并返回IP;
3、根據IP建立TCP連接(三次握手);
4、HTTP發(fā)起請求;
5、服務(wù)器處理請求,瀏覽器接收HTTP的響應;
6、關(guān)閉TCP連接(四次揮手),瀏覽器解析文檔;
7、渲染頁(yè)面;


詳細描述:
1、URL解析
    通過(guò)URL解析出主機名

2、域名解析
    1)首先瀏覽器會(huì )先查找本地hosts文件是否有這個(gè)網(wǎng)址映射關(guān)系,如果有就調用這個(gè)IP地址映射,完成域名解析。
    2)如果沒(méi)有找到則會(huì )查找本地的DNS解析器緩存,如果找到則返回。
    3)如果還是沒(méi)有找到則會(huì )查找本地DNS服務(wù)器,如果找到則返回。
    4)最后迭代查詢(xún),按根域服務(wù)器->頂級域名.cn->第二層域名->子域名的順序找到IP地址。

以chrome為例查看緩存,使用chrome://net-internals/#dns進(jìn)行查看。

3、TCP的三次握手
    第一次握手:建立連接時(shí),客戶(hù)端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器確認;
    第二層握手:服務(wù)器接收到syn包,必須確認客戶(hù)端的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);
    第三次握手:客戶(hù)端收到服務(wù)器的SYN_ACK包,向服務(wù)器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶(hù)端和服務(wù)器進(jìn)入ESTABLISHED(TCP連接成功)狀態(tài),完成三次握手。

4、發(fā)起http請求
    
        完整的HTTP請求包含請求行,請求頭部,請求主體三個(gè)部分。

5、服務(wù)器響應請求,瀏覽器接收響應
    服務(wù)器在收到瀏覽器發(fā)送的HTTP請求之后,會(huì )收到HTTP報文封裝成HTTP的Request對象,并通過(guò)不同的web服務(wù)器進(jìn)行處理,處理完的結果以HTTP的Response對象返回,主要包括狀態(tài)碼,響應頭,響應報文三個(gè)部分。
狀態(tài)碼主要包括以下部分:
    1xx:指示信息-表示請求已接收,繼續處理
    2xx:成功-表示請求已被成功接收,理解,接收
    3xx:重定向-要完成請求必須進(jìn)行更進(jìn)一步的操作
    4xx:客戶(hù)端錯誤-請求語(yǔ)法錯誤或請求無(wú)法實(shí)現
    5xx:服務(wù)器端錯誤:服務(wù)器未能合法實(shí)現請求
響應頭主要由:cache-control、connection、date、pragma等組成。

6、關(guān)閉TCP連接
    
7、渲染頁(yè)面
  • HTML解析出DOM Tree
  • CSS解析出Style Rules
  • 將二者關(guān)聯(lián)生成Render Tree
  • Layout 根據Render Tree計算每個(gè)節點(diǎn)的信息
  • Painting 根據計算好的信息繪制整個(gè)頁(yè)面


以Chrome為例,分析域名是如何解析的(譬如輸入www.linux178.com):
1.Chrome瀏覽器會(huì )首先搜索瀏覽器自身的DNS緩存(緩存時(shí)間比較短,大概只有一分鐘,且只能容納1000條緩存),看自身的緩存中有沒(méi)有www.linux178.com對應的條目,而且有沒(méi)有過(guò)期,如果有且沒(méi)有過(guò)期則解析到此結束。
    注:可以使用chrome://net-internals/#dns 來(lái)進(jìn)行查看
2.如果第一步?jīng)]成功,那么Chrome會(huì )搜索操作系統自身的DNS緩存,如果找到且沒(méi)有過(guò)期則解析到此結束。
    注:以Windows為例查看操作系統自身DNS緩存,在命令行下使用ipconfig /displaydns進(jìn)行查看。
3.如果第二步?jīng)]成功,那么嘗試讀取host文件(位于C:\Windows\System32\drivers\etc),查看有沒(méi)有該域名對應的額IP地址,如果有則解析成功。
4.如果第三步?jīng)]成功,瀏覽器會(huì )發(fā)起一個(gè)DNS的系統調用,就會(huì )向本地配置的首選DNS服務(wù)器(一般是電信運營(yíng)商提供,也可以是Google提供的DNS服務(wù)器)發(fā)起域名解析請求(通過(guò)的是UDP協(xié)議向DNS的53端口發(fā)起請求,這個(gè)請求是遞歸的請求,也就是運營(yíng)商的DNS服務(wù)器必須得提供給我們該域名的IP地址),運營(yíng)商的DNS服務(wù)器首先查找自身的緩存,找到對應的條目,且沒(méi)有過(guò)期,則解析成功。如果沒(méi)有找到對應的條目,則有運營(yíng)商的DNS代我們的瀏覽器發(fā)起迭代DNS解析請求,它首先是會(huì )找根域的DNS的IP地址(這個(gè)DNS服務(wù)器都內置13臺根域的DNS的IP地址),就會(huì )向其發(fā)起請求,根域發(fā)現這是一個(gè)頂級域com域的一個(gè)域名,于是就告訴運營(yíng)商的DNS我不知道這個(gè)域名的IP地址,但是我知道com域的IP地址,你去找它去,于是運營(yíng)商的DNNS又向linux178.com這個(gè)域名的DNS地址(這個(gè)一般就是由域名注冊商提供的,像萬(wàn)網(wǎng),新網(wǎng)等)發(fā)起請求,這個(gè)時(shí)候linux178.com域的DNS服務(wù)器一查,誒,果真在我這里,于是就把找到的結果發(fā)送給運營(yíng)商的DNS服務(wù)器,這個(gè)時(shí)候運營(yíng)商的DNS服務(wù)器就拿到了www.linux178.com這個(gè)域名對應的IP地址,并返回給Windows系統內核,內核又把結果返回給瀏覽器,終于瀏覽器拿到了www.linux178.com對應的IP地址。
注:一般情況下是不會(huì )進(jìn)行以下步驟的
5.  操作系統就會(huì )查找NetBIOS name Cache(NetBIOS名稱(chēng)緩存,就存在客戶(hù)端電腦中的),那這個(gè)緩存有什么東西呢?凡是最近一段時(shí)間內和我成功通訊的計算機的計算機名和Ip地址,就都會(huì )存在這個(gè)緩存里面。什么情況下該步能解析成功呢?就是該名稱(chēng)正好是幾分鐘前和我成功通信過(guò),那么這一步就可以成功解析。
6.  如果第5步也沒(méi)有成功,那會(huì )查詢(xún)WINS 服務(wù)器(是NETBIOS名稱(chēng)和IP地址對應的服務(wù)器)。
7.  如果第6步也沒(méi)有查詢(xún)成功,那么客戶(hù)端就要進(jìn)行廣播查找。
8.  如果第7也沒(méi)有成功,那么客戶(hù)端就讀取LMHOSTS文件(和HOSTS文件同一個(gè)目錄下,寫(xiě)法也一樣)。



2、  HTTP1.0 HTTP1.1 HTTP2.0的性能區別
    
    HTTP1.0
  • 無(wú)狀態(tài)、有連接

    HTTP1.1
  • 持久連接
        增加connection字段,通過(guò)設置Keep-Alive可以保持HTTP連接不斷開(kāi)。

  • 請求管道化
        管道化使得請求能夠“并行”傳輸。
        也就是說(shuō),管道化可以把先進(jìn)先出的隊列從客戶(hù)端(請求隊列)遷移到服務(wù)端(響應隊列)。

  • 增加緩存處理
        強緩存和協(xié)商緩存
        
  • 增加Host字段、支持斷點(diǎn)傳輸
        使得服務(wù)器能夠創(chuàng )建多個(gè)Web站點(diǎn)
    
    HTTP2.0
  •  二進(jìn)制分幀
        在應用層和傳輸層增加一個(gè)二進(jìn)制分幀層,改進(jìn)傳輸性能。

  • 多路復用(連接共享)
        實(shí)現真正的并行傳輸,能夠在一個(gè)TCP上進(jìn)行任意數量的HTTP請求。

  • 頭部壓縮
           使用encoder來(lái)減少傳輸的header大小,搞笑的壓縮算法很大的壓縮了header。

  • 服務(wù)器推送
         服務(wù)器除了對最初請求的響應外,服務(wù)器還可以額外的向客戶(hù)端推送資源,而無(wú)需客戶(hù)端明確的請求。


3、 websocket連接的建立過(guò)程
    websocket 基于TCP傳輸協(xié)議,并復用HTTP的握手通道。

(1)客戶(hù)端發(fā)送請求報文

    發(fā)送請求的要求:

  • 請求的WebSocket URI必須要是定義的有效的URI。
  • 如果客戶(hù)端已經(jīng)有一個(gè)WebSocket連接到遠程服務(wù)器端,不論是否是同一個(gè)服務(wù)器,客戶(hù)端必須要等待上一個(gè)連接關(guān)閉后才能發(fā)送新的連接請求,也就是同一客戶(hù)端一次只能存在一個(gè)WebSocket連接。如果想同一個(gè)服務(wù)器有多個(gè)連接,客戶(hù)端必須要串行化進(jìn)行。如果客戶(hù)端檢測到多個(gè)到不同服務(wù)器的連接,應該限制一個(gè)最大連接數,在web瀏覽器中應該設定最多可以打開(kāi)的標簽頁(yè)的數目。這樣可以防止到遠程服務(wù)器的DDOS攻擊,但這是對到多個(gè)服務(wù)器的連接,如果是到同一個(gè)服務(wù)器連接,并沒(méi)有數目限制。
  • 如果使用了代理服務(wù)器,那么客戶(hù)端建立連接的時(shí)候需要告知代理服務(wù)器向目標服務(wù)器打開(kāi)TCP連接。
  • 如果連接沒(méi)有打開(kāi),一定是某一方出現錯誤,此時(shí)客戶(hù)端必須要關(guān)閉再次連接的嘗試。
  • 連接建立后,握手必須要是一個(gè)有效的HTTP請求
  • 請求的方式必須是GET,HTTP協(xié)議的版本至少是1.1
  • Upgrade字段必須包含而且必須是"websocket",Connection字段必須內容必須是“Upgrade”
  • Sec-Websocket-Version必須,而且必須是13

(2)服務(wù)器發(fā)送響應報文
  • 解析握手請求頭:獲取握手依據Key并進(jìn)行處理,檢測HTTP的GET請求和版本是否準確,Host字段是否有權限,Upgrade字段中websocket是一個(gè)與大小寫(xiě)無(wú)關(guān)的ASCII字符串,Connection字段是一個(gè)大小寫(xiě)無(wú)關(guān)的"Upgrade"ASCII字符串,Websocket協(xié)議版本必須為13,其他的關(guān)于Origin、Protocol和Extensions可選。
  • 發(fā)送握手響應頭:檢測是否是wss協(xié)議連接,如果是就是用TLS握手連接,否則就是普通連接。服務(wù)器可以添加額外的驗證信息到客戶(hù)端進(jìn)行驗證。當進(jìn)行一系列驗證之后,服務(wù)器必須返回一個(gè)有效的HTTP響應頭。響應頭中每一行一個(gè)字段,結束必須為“\r\n”,使用的ABNF語(yǔ)法。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
面試經(jīng)驗|計算機網(wǎng)絡(luò )面試相關(guān)知識
在瀏覽器中輸入一個(gè)網(wǎng)址后,發(fā)生了什么?
有時(shí)候DNS緩存清理很重要
直播帶貨源碼,和CDN有關(guān)的名詞都該了解一下
DNS是什么?工作原理、工作流程總結
從輸入url到頁(yè)面展示到底發(fā)生了什么
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久