iOS 網(wǎng)絡(luò)

HTTP協(xié)議

HTTPS與網(wǎng)絡(luò)安全

TCP/UDP

DNS

session和cookie


HTTP協(xié)議

超文本傳輸協(xié)議

  • 請求/響應(yīng)報文
  • 連接建立流程
  • HTTP特點
請求報文

get沒有主體 post有主體

響應(yīng)報文
HTTP的請求方式有哪些逗爹?

GET POST HEAD PUT DELETE OPTIONS

GET和POST方式的區(qū)別黑界?
  1. GET請求參數(shù)以?分割拼接到URL后面的玉吁,post請求參數(shù)在主體里面呀舔。
  2. GET請求長度是2048個字符害幅,POST一般沒有限制
  3. GET請求安全留搔,POST不安全

標(biāo)準(zhǔn)答案 = 從語義的角度

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

不引起server推斷的任何狀態(tài)變化
GET HEAD POST

冪等性

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

可緩存性

請求能否被緩存
GET HEAD

狀態(tài)碼
  • 1xx
  • 2xx: 成功
  • 3xx :重定向
  • 4xx :客戶端請求有問題
  • 5xx: server端有異常
HTTP協(xié)議連接流程
  1. 三次握手建立連接
  2. 在連接上面進(jìn)行HTTP數(shù)據(jù)的請求和HTTP響應(yīng)傳遞
  3. 四次揮手釋放連接

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

HTTP的特點
  • 無連接
    HTTP的持久連接連接方案補(bǔ)償
  • 無狀態(tài)
    同一個用戶译红,server是不知道的
    Coojie/Session技術(shù)補(bǔ)償
持久連接

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

中間人攻擊

HTTPS與網(wǎng)絡(luò)安全

HTTP與HTTPS區(qū)別

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


IP網(wǎng)絡(luò)層昵慌,TCP是傳輸層,HTTP應(yīng)用層 SSL/TLS應(yīng)用層之下傳輸層之上

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

會話秘鑰

會話秘鑰 = random S + random C + 預(yù)主秘鑰

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


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


TCP和UDP

傳輸層的協(xié)議
TCP是傳輸層控制協(xié)議
UDP是用戶數(shù)據(jù)報協(xié)議

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


    多端口復(fù)用和分用
  2. 差錯檢測


TCP

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

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

  • 為什么不是兩次呢裁眯?
    SYN同步報文超時或者丟失后鹉梨,超時之后逗留在網(wǎng)絡(luò)環(huán)境中,這個時候會發(fā)生超時重傳穿稳,收到后server會回復(fù)一個確認(rèn)的報文存皂。如果是兩次握手,這個時候TCP連接已經(jīng)建立了逢艘,假設(shè)剛才逗留的超時報文過來了旦袋,這個時候Server會以為又要建立一個。通過ACK就能辨別是不是超時重復(fù)的請求它改。
  • 為什么是四次揮手



    因為通道是全雙通的疤孕,雙向可以發(fā)送回復(fù),才需要雙方面的關(guān)閉央拖。

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


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

對比UDP面向報文


TCP流量控制

滑動窗口協(xié)議


滑動窗口機(jī)制
TCP擁塞控制

慢開始祭阀、擁塞避免
快恢復(fù)、快重傳


慢開始鲜戒、擁塞避免

快恢復(fù)专控、快重傳不回到慢開始的步驟

DNS解析

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

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

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


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


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


    DNS劫持
  • DNS劫持和HTTP關(guān)系沒有關(guān)系的
    DNS解析發(fā)生在HTTP建立之前
    DNS解析請求使用UDP數(shù)據(jù)報境输,端口號是53

DNS解析轉(zhuǎn)發(fā)
DNS解析轉(zhuǎn)發(fā)
怎么解決DNS劫持蔗牡?
  • httpDNS
    使用DNS協(xié)議向DNS服務(wù)器的53端口進(jìn)行請求
    ??

    使用HTTP協(xié)議向DNS服務(wù)器的53端口進(jìn)行請求
    httpDNS
  • 長連接
    避免公網(wǎng)

長連接

Session/Cookie

HTTP無狀態(tài)特點補(bǔ)償
HTTP Cookie
  • Cookie是用來記錄用戶狀態(tài)的,用來區(qū)分用戶的嗅剖,狀態(tài)保存在客戶端


  • 怎么修改cookie呢?
    新cookie覆蓋舊cookie
    覆蓋規(guī)則:name嘁扼、path信粮、domain等要和原cookie一致

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

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

HTTP Session
  • Cookie是用來記錄用戶狀態(tài)的,用來區(qū)分用戶的旅掂,狀態(tài)保存在服務(wù)端
  • Session要以來cookie機(jī)制

網(wǎng)絡(luò)相關(guān)面試總結(jié)

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末秘车,一起剝皮案震驚了整個濱河市典勇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叮趴,老刑警劉巖割笙,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異眯亦,居然都是意外死亡伤溉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門妻率,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谈火,“玉大人,你說我怎么就攤上這事舌涨∨此#” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵囊嘉,是天一觀的道長温技。 經(jīng)常有香客問我,道長扭粱,這世上最難降的妖魔是什么舵鳞? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮琢蛤,結(jié)果婚禮上蜓堕,老公的妹妹穿的比我還像新娘。我一直安慰自己博其,他們只是感情好套才,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著慕淡,像睡著了一般背伴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天傻寂,我揣著相機(jī)與錄音息尺,去河邊找鬼。 笑死疾掰,一個胖子當(dāng)著我的面吹牛搂誉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播静檬,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼炭懊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了巴柿?” 一聲冷哼從身側(cè)響起凛虽,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎广恢,沒想到半個月后凯旋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡钉迷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年至非,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糠聪。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡荒椭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舰蟆,到底是詐尸還是另有隱情趣惠,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布身害,位于F島的核電站味悄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏塌鸯。R本人自食惡果不足惜侍瑟,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望丙猬。 院中可真熱鬧涨颜,春花似錦、人聲如沸茧球。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽袜腥。三九已至见擦,卻和暖如春钉汗,著一層夾襖步出監(jiān)牢的瞬間羹令,已是汗流浹背鲤屡。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留福侈,地道東北人酒来。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像肪凛,于是被迫代替她去往敵國和親堰汉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容