網(wǎng)絡(luò)

HTTP

HTTP是一個超文本傳輸協(xié)議

構(gòu)成:請求報文&響應(yīng)報文

請求報文



響應(yīng)報文



HTTP首部字段
//判斷一個請求是否結(jié)束Content-Length 或者 chunked
Content-Length :1024  
chunked   //最后會有一個空的chunked

//允許在同一個tcp連接上發(fā)送多個http請求,但服務(wù)器必須按照順序應(yīng)答
Connection: keep-alive  
timeout=20 //最多維持20s
max=100  // 最多100次請求后斷開
//
//http2后新增
使用二進制數(shù)據(jù)流,支持頭部壓縮

HTTP的請求方式有哪些?

GET POST HEAD PUT DELETE OPTIONS
GET和POST有什么區(qū)別?

GET和POST的區(qū)別?

GET用于獲取資源:安全、冪等、可緩存
POST用于處理資源:非安全、非冪等、不可緩存
安全:不引起服務(wù)端的任何變化
冪等:同一個請求方法執(zhí)行多次和執(zhí)行一次的效果完全相同。
可緩存:代理服務(wù)器上可以緩存結(jié)果

狀態(tài)碼有哪些?

1xx : 服務(wù)器收到請求
2xx:操作被成功接收并處理
3xx:重定向
4xx:客戶端錯誤
5xx:服務(wù)端錯誤

HTTP特點

無連接:建立連接后,又會釋放連接 (HTTP持久連接)
無狀態(tài):多次請求,不知道是否同一個用戶 (Cookie,Session)

HTTP建立連接的過程
Charles抓包原理

HTTPS

HTTPS是安全的HTTP,安全是在應(yīng)用層之下、傳輸層之上插入了SSL/TLS中間插件。HTTPS = HTTP + SSL/TLS



HTTPS連接建立流程


HTTPS使用了哪些加密手段
連接過程中使用了非對稱加密,非對稱加密很耗時
后續(xù)通信過程使用了對稱加密。



UDP

特點:
1 無連接
2 盡最大努力交付
3 面向報文(既不合并,也不拆分)
功能:
1 復(fù)用、分用
2 差錯檢測

TCP

特點
1 面向連接 : 三次握手,四次揮手
為什么是三次握手?
假設(shè)2次握手,client發(fā)送 syn = a 超時,此時超時重傳 syn = b,Server回應(yīng)了ack建立一次連接。 之后syn=a到達了Server,Server回應(yīng)了ack。那么就會建立2次連接。但是三次就不一樣。當超時的syn=a達到Server,Server回應(yīng)ack后,客戶端自己知道建立已經(jīng)連接,就不會再建立新的連接了。
為什么是四次揮手?
客戶端和服務(wù)端的連接通道是全雙工的。需要雙方面的連接和釋放

2 可靠傳輸
無差錯
不丟失
不重復(fù)
按序到達

3 面向字節(jié)流

4 流量控制
滑動窗口協(xié)議: App繼續(xù)發(fā)送數(shù)據(jù)時,Server接收窗口比較小,發(fā)送方窗口大,以更快的速率往后發(fā),需要由TCP窗口首部字段更改發(fā)送方的發(fā)送速率。

5 擁塞控制
慢開始,擁塞避免
快恢復(fù),快重傳。
x:交互次數(shù),輪詢次數(shù)
y: 窗口大小
報文次數(shù),窗口門限制前指數(shù)增加,門限值后,線性增長。若果發(fā)了網(wǎng)絡(luò)擁塞。重新慢開始,同時降低窗口


DNS

域名到IP地址映射,DNS解析請求采用UDP數(shù)據(jù)報,且明文


1 DNS解析查詢方式
遞歸查詢:我去給你問一下
迭代查詢:我告訴你誰可能知道


遞歸查詢

迭代查詢

DNS劫持與HTTP的關(guān)系是怎樣的?
沒有關(guān)系,DNS解析發(fā)生在HTTP建立連接之前,DNS解析請求使用UDP數(shù)據(jù)報,端口53

2 DNS解析轉(zhuǎn)發(fā)?
就是本地DNS為了節(jié)省資源,把解析任務(wù)外包給其他的DNS服務(wù)器。

3 怎樣解決DNS劫持?
httpDNS : DNS是使用UDP數(shù)據(jù)報,明文請求53端口。改為使用HTTP協(xié)議向DNS服務(wù)器的80端口進行請求。
長連接:Client <----->長連接Server-------->APIServer


Session/Cookie

Cookie主要用來記錄用戶狀態(tài),區(qū)分用戶;狀態(tài)保存在客戶端。
客戶端發(fā)送cookie在http請求報文的Cookie首部字段中
服務(wù)端設(shè)置http響應(yīng)報文的Set-Cookie首部字段


怎樣保證Cookie安全?
對Cookie加密處理
只在https攜帶Cookie
設(shè)置Cookie為httpOnly,防止跨站腳本攻擊

Session

Session主要用來記錄用戶狀態(tài),區(qū)分用戶;狀態(tài)存放在服務(wù)器端。
Session需要依賴Cookie實現(xiàn)。

總結(jié)

http GET POST區(qū)別?
HTTPS鏈接建立流程?
TCP UDP區(qū)別?
TCP慢開始?
客戶端怎樣避免DNS劫持?

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

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

  • HTTP協(xié)議 在 OSI 七層模型中,HTTP 協(xié)議位于最頂層的應(yīng)用層中。通過瀏覽器訪問網(wǎng)頁就直接使用了 HTTP...
    WendySays閱讀 843評論 0 1
  • 網(wǎng)絡(luò)模型 OSI分層模型 OSI 模型(Open System Interconnection model)是一個...
    wustor閱讀 543評論 0 2
  • 6.1 公鑰密鑰加密原理 6.1.1 基礎(chǔ)知識 密鑰:一般就是一個字符串或數(shù)字,在加密或者解密時傳遞給加密/解密算...
    AndroidMaster閱讀 4,107評論 1 8
  • 遲日宿燕歸, 依約望故人。 心素寄錦字, 不語淚闌干。 斂黛倚戶牖, 相見是何年。
    宿染閱讀 198評論 0 3
  • 因為欠缺投資理財?shù)闹R,所以現(xiàn)在對學習定投區(qū)塊鏈有一種相見恨晚的感覺。每天都會看點兒區(qū)塊鏈知識或者進群里了解一些區(qū)...
    依盈閱讀 313評論 0 1

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