iOS 網絡

HTTP協議

HTTPS與網絡安全

TCP/UDP

DNS

session和cookie


HTTP協議

超文本傳輸協議

  • 請求/響應報文
  • 連接建立流程
  • HTTP特點
請求報文

get沒有主體 post有主體

響應報文
HTTP的請求方式有哪些?

GET POST HEAD PUT DELETE OPTIONS

GET和POST方式的區別?
  1. GET請求參數以?分割拼接到URL后面的,post請求參數在主體里面。
  2. GET請求長度是2048個字符,POST一般沒有限制
  3. GET請求安全,POST不安全

標準答案 = 從語義的角度

  • GET : 獲取資源
    安全的 冪等的 可緩存的
  • POST: 處理資源
    不安全的 不冪等的 不可緩存的
安全性

不引起server推斷的任何狀態變化
GET HEAD POST

冪等性

同一個請求方法執行多次和執行一次效果是完全相同的
GET PUT DELETE

可緩存性

請求能否被緩存
GET HEAD

狀態碼
  • 1xx
  • 2xx: 成功
  • 3xx :重定向
  • 4xx :客戶端請求有問題
  • 5xx: server端有異常
HTTP協議連接流程
  1. 三次握手建立連接
  2. 在連接上面進行HTTP數據的請求和HTTP響應傳遞
  3. 四次揮手釋放連接

為什么是三次握手和四次揮手?

HTTP的特點
  • 無連接
    HTTP的持久連接連接方案補償
  • 無狀態
    同一個用戶,server是不知道的
    Coojie/Session技術補償
持久連接

為了提升效率,重復使用連接
  • 頭部字段
    connection: Keep-alive
    time:20
    max: 10
  • 怎么判斷一個球球是否結束?
    content-length:1024客戶端響應理由
    chunked,多個塊每個報文有一個chunked,結束后最后一個是空的chunked
Charles抓包原理

中間人攻擊

HTTPS與網絡安全

HTTP與HTTPS區別

HTTPS = HTTP + SSL/TLS(安全模塊)


IP網絡層,TCP是傳輸層,HTTP應用層 SSL/TLS應用層之下傳輸層之上

HTTPS是安全的HTTP是SSL/TLS應用層之下傳輸層之上 這個模塊保證

會話秘鑰

會話秘鑰 = random S + random C + 預主秘鑰

HTTPS用了那些加密手段?為什么?
  • 連接建立過程中用非對稱加密,非對稱加密是很耗時的
    公鑰 私鑰
  • 后續傳遞過程中是用對稱加密的
非對稱加密
非對稱
對稱加密


對稱加密會被中間人截獲,因為要傳遞


TCP和UDP

傳輸層的協議
TCP是傳輸層控制協議
UDP是用戶數據報協議

UDP (戶數據報協議)
  • 無連接: 發送數據報,不用建立和釋放連接
  • 盡最大努力交付: 不保證可靠傳輸
  • 面向報文
UDP用戶數據報功能
  1. 復用、分用


    多端口復用和分用
  2. 差錯檢測


TCP

TCP特點
  • 面向連接
  • 可靠傳輸
  • 面向字節流
  • 流量控制
  • 擁塞控制
TCP面向連接

傳輸前建立連接
三次握手
傳輸后釋放連接
四次揮手

  • 為什么不是兩次呢?
    SYN同步報文超時或者丟失后,超時之后逗留在網絡環境中,這個時候會發生超時重傳,收到后server會回復一個確認的報文。如果是兩次握手,這個時候TCP連接已經建立了,假設剛才逗留的超時報文過來了,這個時候Server會以為又要建立一個。通過ACK就能辨別是不是超時重復的請求。
  • 為什么是四次揮手



    因為通道是全雙通的,雙向可以發送回復,才需要雙方面的關閉。

TCP 可靠傳輸
  • 無差錯
  • 不丟失
  • 不重復
  • 按序到達


    無差錯情況
解決方案:超時重傳
確認丟失場景
確認遲到場景
TCP面向字節流

對比UDP面向報文


TCP流量控制

滑動窗口協議


滑動窗口機制
TCP擁塞控制

慢開始、擁塞避免
快恢復、快重傳


慢開始、擁塞避免

快恢復、快重傳不回到慢開始的步驟

DNS解析

你了解DNS解析嗎?過程是怎么樣的?

域名到IP地址的一個映射,DNS解析請求采用UDP數據報,而且是明文的

DNS解析的查詢方式
  • 遞歸查詢
    “我去給你問一下”


    遞歸查詢
  • 迭代查詢
    “我告訴你誰可能知道”


    迭代查詢
  • DNS劫持
    明文被竊聽


    DNS劫持
  • DNS劫持和HTTP關系沒有關系的
    DNS解析發生在HTTP建立之前
    DNS解析請求使用UDP數據報,端口號是53

DNS解析轉發
DNS解析轉發
怎么解決DNS劫持?
  • httpDNS
    使用DNS協議向DNS服務器的53端口進行請求
    ??

    使用HTTP協議向DNS服務器的53端口進行請求
    httpDNS
  • 長連接
    避免公網

長連接

Session/Cookie

HTTP無狀態特點補償
HTTP Cookie
  • Cookie是用來記錄用戶狀態的,用來區分用戶的,狀態保存在客戶端


  • 怎么修改cookie呢?
    新cookie覆蓋舊cookie
    覆蓋規則:name、path、domain等要和原cookie一致

  • 怎么刪除cookie呢?
    新cookie覆蓋舊cookie
    覆蓋規則:name、path、domain等要和原cookie一致
    設置cookie的expires = 過去的某個時間 或者 maxAge = 0

  • 怎么保證Cookie的安全
    對cookie進行加密處理 (加密也會被腳本共計)
    只在https上攜帶cookie
    設置cookie為httpOnly,防止腳本工資

HTTP Session
  • Cookie是用來記錄用戶狀態的,用來區分用戶的,狀態保存在服務端
  • Session要以來cookie機制

網絡相關面試總結

HTTP的get和set的區別?(語義角度)
HTTPS建立的流程是什么樣的?(時序圖 機密和證書)
TCP和UDP的區別?(特點)
TCP慢開始?(擁塞控制)
怎么避免DNS劫持?(兩種)

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,406評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,034評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,413評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,449評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,165評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,559評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,606評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,781評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,327評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,084評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,278評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,849評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,495評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,927評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,172評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,010評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,241評論 2 375

推薦閱讀更多精彩內容

  • iOS 網絡知識 一、http協議 1、描述是一種詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,是傳送萬維網文...
    如今0生活成了心術閱讀 232評論 0 2
  • 網絡基礎術語 HTTP:超文本傳輸協議,信息是明文傳輸的。 HTTPS:添加了加密及認證機制的HTTP,具有安全性...
    Dezi閱讀 1,963評論 2 16
  • 一、HTTP協議 超文本傳輸協議 請求/響應報文 連接簡歷流程 HTTP的特點 1.1 請求/響應報文 HTTP的...
    木子奕閱讀 951評論 1 6
  • 目錄 Cookie詳解IP地址,域名,DNS 作用TCP與 UDP 的比較網絡狀態碼GET與POST的區別 一.為...
    路飛_Luck閱讀 1,012評論 0 5
  • HTTP的請求方式都有哪些? 安全:不應該引起Server端的任何狀態變化。get、head、options 冪等...
    邦_閱讀 148評論 0 0