06-網(wǎng)絡(luò)類&加密

網(wǎng)絡(luò)七層協(xié)議(http,tcp/ip處于哪一層)?

  • http屬于應(yīng)用層協(xié)議,基于tcp/ip
  • tcp/ip屬于傳輸層協(xié)議

什么是HTTP?

超文本傳輸協(xié)議

什么是HTTPS?

  • HTTPS = HTTP + SSL/TLS, 也就是在HTTP上又加了一層處理加密信息的模塊, 傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)
  • SSL
  • TLS

HTTP與HTTPS的區(qū)別?

  • 使用https協(xié)議需要申請證書, 需要交費
  • http是明文傳輸, https則是具有安全性的加密傳輸
  • 兩者使用的是完全不同的連接方式

HTTPS的加密原理

  1. 服務(wù)器端用非對稱加密(RSA)生成公鑰和私鑰
  2. 然后把公鑰發(fā)給客戶端, 服務(wù)器則保存私鑰
  3. 客戶端拿到公鑰后, 會生成一個密鑰, 這個密鑰就是將來客戶端和服務(wù)器用來通信的鑰匙
  4. 然后客戶端用公鑰對密鑰進(jìn)行加密, 再發(fā)給服務(wù)器
  5. 服務(wù)器拿到客戶端發(fā)來的加密后的密鑰后, 再使用私鑰解密密鑰, 到此雙方都獲得通信的鑰匙

TCP和UDP的區(qū)別?

  • 相同點
    • 都屬于傳輸層協(xié)議
  • 不同點
    • TCP面向連接, 提供可靠傳輸, UDP面向無連接, 無法提供可靠性傳輸
    • TCP必須要和服務(wù)器交互,需要和服務(wù)器進(jìn)行三次握手和四次揮手

GET和POST的區(qū)別

  • GET通常用于從服務(wù)器獲取數(shù)據(jù),POST通常用于向服務(wù)器發(fā)送數(shù)據(jù)
  • 相同點:
    • 都可以用于請求數(shù)據(jù)
  • 不同點:
    • 上傳參數(shù)的方式不一樣
      • GET的參數(shù)是追加到url后面
      • POST的參數(shù)是添加在HttpBody中的
    • 對上傳的參數(shù)的大小限制不一樣
      • GET有限制
      • POST沒有限制
    • 安全性不一樣
      • POST比GET更安全
    • 效率不一樣
      • GET效率高于POST

md5和base64是什么,有什么區(qū)別?

  • md5是不可逆的加密算法,可以把任意長的字符串加密為固定長度的字符串
  • base64是可逆的加密算法, 一般用于url的編碼

簡單談?wù)刄DP和TCP/(http和https)

  • 兩者都是傳輸層的協(xié)議
  • 兩者的區(qū)別
    • TCP面向連接,安全可靠,
    • TCP需要和服務(wù)器的Socket對接, 連接過程需要三次握手
    • UDP面向無連接, 不可靠,
    • UDP不需要服務(wù)器也能進(jìn)行數(shù)據(jù)傳輸, 適合用于高速傳輸和實時性較高的廣播通信

NSURlConnection斷點下載的思路

  • 先判斷是否已經(jīng)下載完成
  • 已下載完成的情況:
  • 未完成下載的情況:
    • 若根本沒下載過,則從頭下載
    • 若下載了一部分,先讀取下載了多少數(shù)據(jù),在告訴服務(wù)器從哪個地方開始繼續(xù)下載
    • 核心代碼

Http與tcp,udp的區(qū)別?

詳情
詳情

  • Http是應(yīng)用層協(xié)議,基于TCP/IP,也可以說是傳輸層協(xié)議
  • TCP,UDP是傳輸層協(xié)議

http都設(shè)置哪些header?

詳情鏈接

SSL加密流程

  • 服務(wù)器用非對稱加密(RSA)產(chǎn)生一對公鑰和私鑰
  • 服務(wù)器將公鑰發(fā)送給客戶端(即使消息被攔截也需要用私鑰解密,私鑰不會離開服務(wù)器)
  • 客戶端收到公鑰后,用對稱加密產(chǎn)生一個密鑰,并且用公鑰加密傳回給服務(wù)器
  • 服務(wù)器用私鑰解密,得到密鑰,這個密鑰就是以后通信的鑰匙

網(wǎng)絡(luò)加密方式有哪些,各自的原理

  • md5(哈希算法):把任意長度的字符串加密成一個128bit的大整數(shù),并且是不可逆的
  • RSA(非對稱算法加密):產(chǎn)生一對非對稱的公鑰和私鑰,公鑰加密,私鑰解密。私鑰加密,公鑰解密
  • AES(對稱加密):加密和解密的密鑰是同一個
  • base64(現(xiàn)代密碼學(xué)的基礎(chǔ)):原本8 bit一組的數(shù)據(jù)改為6bit一組,不足的地方補(bǔ)0,每兩個0用一個 = 表示

說下你對Socket的理解?

  • Socket就是對TCP/IP協(xié)議的封裝,一組接口

對xmpp的理解

  • xmpp是基于XML流傳輸協(xié)議,它用于即使消息以及在線現(xiàn)場偵探。
  • XMPPStream用于連接服務(wù)器,設(shè)置主機(jī)名,服務(wù)器域名,設(shè)置代理,注冊、登陸和發(fā)消息所有時間的回調(diào)。
  • 通過jid與服務(wù)器進(jìn)行連接。連接成功做登陸或注冊的操作。用XMPPPresence做上線的操作。
  • 通過發(fā)送命令獲取好友。
  • XMPPMessage類做消息的發(fā)送與消息的獲取。
  • XMPPRoster負(fù)責(zé)好友的添加,好友的獲取。
  • XMPPRoom 提供多用戶的聊天支持

客戶端安全性處理方式?

  • 敏感數(shù)據(jù)加密,存儲到keyChain

Socket的實現(xiàn)原理及Socket之間是如何通信的

網(wǎng)絡(luò)圖片處理問題中怎么解決一個相同的網(wǎng)絡(luò)地址重復(fù)請求的問題?

  • 圖片的名字就是url的md5.所以判斷url的md5是否存在本地即可

現(xiàn)在有一個資源網(wǎng)址(資源是什么未知),要請求這個資源你會考慮哪些問題?

  • 根據(jù)響應(yīng)頭判斷數(shù)據(jù)類型(conten-type)
  • 如果文件比較大,可以考慮斷點下載
  • 子線程中下載
  • 如果加密了要進(jìn)行相應(yīng)的解密

iOS緩存方案?

  • 網(wǎng)絡(luò)優(yōu)先:開始總是從網(wǎng)絡(luò)獲取,如果獲取失敗,從本地獲取。
  • 本地優(yōu)先:在一段時間內(nèi)從本地獲取,當(dāng)超過這個時間,然后重新請求網(wǎng)絡(luò)數(shù)據(jù)。
  • 混合(智能):打開程序先從本地獲取展示,然后請求數(shù)據(jù),請求完成后刷新界面。
最后編輯于
?著作權(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)容

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