相關的一些東西

2021-09-13 02:08:09 字數 1171 閱讀 9243

這幾天一直在看關於http和前端效能優化相關的內容,今天先寫一篇關於http的文章,如果時間允許的話再接著把前端效能優化的寫完。畢竟還要留著時間去看小片嘛?

接下來就是正文啦!

瀏覽器輸入url後http請求返回的完整過程

就是下圖這個啦(這個可是我從某課網偷來的)

從輸入位址到頁面渲染

在http的五層分層中:

#### 統一資源識別符號uri

uri用字串標識某一網際網路資源,包括url和urn。

url為統一資源定位符,表示資源的地點(網際網路上所處的位置);

urn為永久統一資源定位符:資源在移動之後還能被找到,目前還沒有非常成功的使用方案。

#### tcp連線中的三次握手與四次揮手

這部分內容是面試中的重點,尤其是syn、ack啥的,好亂?

先放圖?

其中:起初兩端的tcp程序都是closed狀態。主動開啟連線的是客戶端,被動開啟連線的是伺服器

第一次握手:客戶端向伺服器發出連線請求保溫,這是報文首部中的同部位syn=1,同時選擇乙個初始序列號seq=x,此時,tcp客戶端程序進入了syn-sent(同步已傳送狀態)。tcp規定,syn報文段(syn=1的報文段)不能攜帶資料,但需要消耗掉乙個序號。

第二次握手:伺服器收到請求報文後,如果同意連線就發出確認報文。確認報文中ack=1,syn=1,確認號為ack=x+1,同時也要為自己初始化乙個序號seq=y,此時伺服器進入了syn-rcvd(同步收到)狀態。這個報文不能攜帶資料,但是同樣要消耗乙個序號。

第三次握手:客戶端收到確認後,還要向伺服器給出確認。確認報文的ack=1,ack=y+1,自己的序列號seq=x+1,此時,tcp連線建立,客戶端進入established(已建立連線)狀態。tcp規定,ack報文段可以攜帶資料,但是如果不攜帶資料則不消耗序號。

當服務端收到客戶端的確認後也進入established狀態,此後雙方就可以開始連通了。

四次揮手:

Git相關的一些東西

建立本地分支 git branch 分支名 切換到本地分支 git checkout 分支名 建立本地分支並切換到該分支 git checkout b 分支名 提交本地分支到遠端倉庫 git push origin 本地分支名 將新建的本地分支與遠端分支關聯 git branch set upstr...

c stl 一些東西

std map 其key是基於比較運算子的,因此自定義型別需要為該型別設定比較運算子操作 class a private int mm std mapkk std unordered map 基於hash實現,需要為自定義型別設定 運算子和雜湊函式 class a int get value con...

一些基礎的東西

在c 中宣告變數使用下述的語法 但是在c 中有變數初始化的要求,即c 編譯器需要用某個初始值對變數進行初始化,之後才能在操作中引用該變數。c 有兩個方法可確保變數在使用前進行了初始化 變數是類 class 或結構 struct 中的字段 field 如果沒有顯式初始化,在預設狀態下建立這些變數時,其...