1.http的兩種請求方式:get和post請求
get:請求引數位於url後面,可以被快取下來,而且存在長度限制,由於瀏覽器的不同,長度也就不同,用於從指定資源請求資料,只能允許字串,並且存在不安全性
post:請求引數位於http訊息主體裡面,不能被快取,沒有長度限制,但是實際上是取決於伺服器的處理程式的能力,向指定資源提交要被處理的資料,資料型別是沒有限制,更加安全因為引數不會被快取下來
注意安全概念,get是因為使用者名稱和密碼將明文出現在url上,因為(1)登入頁面有可能被瀏覽器快取,(2)其他人檢視瀏覽器的歷史紀錄,那麼 別人就可以拿到你的賬號和密碼了
2.http和https請求
http超文字傳輸協議 ,資料未加密,明文傳輸,是不安全的,port = 80
https http的安全版本,加入ssl層,資料加密傳輸,是安全的 , port = 443
他們的請求流程:
1.客戶端發起https請求
2.服務端返回公鑰和證書
3.客戶端驗證證書,如果成功則通過公鑰加密,生成乙個隨機的秘鑰傳送給服務端
4.服務端使用秘鑰解密,獲取隨機秘鑰加密資料發給客戶端
5.客戶端通過秘鑰解密資料
3. tcp 三次握手,四次揮手
三次握手:是指建立乙個tcp連線的時候,需要客戶端和伺服器總共傳送3個包
1.客戶端傳送鏈結請求(tcp的synchronize sequence numbers標誌位置1的包,來指明客戶打算連線的伺服器以及埠號,以及初始序列號,儲存在包頭的seqence number欄位裡)
2.第二次握手,伺服器發回確認包ack應答,即syn和ack標標誌位都為1的同時,將確認序號(acknowledgement number)設值為客戶的isn + 1, 即 x + 1
3.第三次握手,客戶端再次發揮ack確認包,syn標誌位為0,ack標誌位為1,並且把伺服器發來的ack的序號字段 + 1 ,放在確定欄位中發給對方,並且在資料段中放寫isn的 + 1
4.伺服器收到確認,並且進入established
關於為什麼要三次握手,不能兩次握手的回答:
主要防止已經失效的請求報文突然又傳送到伺服器,從而產生錯誤
客戶端第一次發的報文因為網路延時沒有到達,客戶端進行重發
第二次的報文到達服務端,服務端確認 ,突然延遲的報文右到達服務端
又會進行連線如果是三次那麼服務端返回延遲報文後客戶端已經傳送請求了就不會再次傳送確認了
四次揮手:tcp的連線的拆除需要傳送四個包,因此稱為四次揮手(four-way handshake)。客戶端或伺服器均可主動發起揮手動作,在socket程式設計中,任何一方執行close()操作即可產生揮手操作
計算機網路基礎知識
計算機網路協議 osi 七層協定 計算機網路協議 tcp ip 其實 tcp ip 也是使用 osi 七層協議的觀念,所以同樣具有分層的架構,只是將它簡化為四層,在結構上面比較沒有這麼嚴謹,程式撰寫會比較容易些。網路 一次傳輸的資料量是有限的,因此如果要被傳輸的資料太大時,我們在分層的包裝中,就得要...
計算機網路基礎知識
計算機網路建立在自頂向下分層設計 自底向上逐層抽象的基礎上。分層與抽象就是為了簡化問題。1.應用層,不同主機應用程式間的通訊。運輸層,通過埠,實現復用分用。網路層,解決不同異構網路連線的問題。資料鏈路層,加入協議,幫助分組從乙個主機傳送到另乙個主機。物理層主要任務描述為確定與傳輸 的介面的一些特性,...
計算機網路基礎知識
osi七層網路協議體系結構 物理層,資料鏈路層,網路層,運輸層,會話層,表示層,應用層。五層協議體系結構 物理層,資料鏈路層,網路層,運輸層,應用層。tcp ip體系結構 網路介面層,網際層ip,運輸層 tcp或udp 應用層 1.物理層 在物理層上所傳資料的單位是位元。物理層的任務就是透明的傳送位...