網(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é)議需要申請證書, 需要交費(fèi)
- http是明文傳輸, https則是具有安全性的加密傳輸
- 兩者使用的是完全不同的連接方式
HTTPS的加密原理
- 服務(wù)器端用非對稱加密(RSA)生成公鑰和私鑰
- 然后把公鑰發(fā)給客戶端, 服務(wù)器則保存私鑰
- 客戶端拿到公鑰后, 會生成一個(gè)密鑰, 這個(gè)密鑰就是將來客戶端和服務(wù)器用來通信的鑰匙
- 然后客戶端用公鑰對密鑰進(jìn)行加密, 再發(fā)給服務(wù)器
- 服務(wù)器拿到客戶端發(fā)來的加密后的密鑰后, 再使用私鑰解密密鑰, 到此雙方都獲得通信的鑰匙
TCP和UDP的區(qū)別蹬铺?
- 相同點(diǎn)
- 都屬于傳輸層協(xié)議
- 不同點(diǎn)
- TCP面向連接, 提供可靠傳輸, UDP面向無連接, 無法提供可靠性傳輸
- TCP必須要和服務(wù)器交互,需要和服務(wù)器進(jìn)行三次握手和四次揮手
GET和POST的區(qū)別
- GET通常用于從服務(wù)器獲取數(shù)據(jù)尝哆,POST通常用于向服務(wù)器發(fā)送數(shù)據(jù)
- 相同點(diǎn):
- 都可以用于請求數(shù)據(jù)
- 不同點(diǎn):
- 上傳參數(shù)的方式不一樣
- GET的參數(shù)是追加到url后面
- POST的參數(shù)是添加在HttpBody中的
- 對上傳的參數(shù)的大小限制不一樣
- GET有限制
- POST沒有限制
- 安全性不一樣
- POST比GET更安全
- 效率不一樣
- GET效率高于POST
- 上傳參數(shù)的方式不一樣
md5和base64是什么,有什么區(qū)別?
- md5是不可逆的加密算法,可以把任意長的字符串加密為固定長度的字符串
- base64是可逆的加密算法, 一般用于url的編碼
簡單談?wù)刄DP和TCP/(http和https)
- 兩者都是傳輸層的協(xié)議
- 兩者的區(qū)別
- TCP面向連接,安全可靠,
- TCP需要和服務(wù)器的Socket對接, 連接過程需要三次握手
- UDP面向無連接, 不可靠,
- UDP不需要服務(wù)器也能進(jìn)行數(shù)據(jù)傳輸, 適合用于高速傳輸和實(shí)時(shí)性較高的廣播通信
NSURlConnection斷點(diǎn)下載的思路
- 先判斷是否已經(jīng)下載完成
- 已下載完成的情況:
- 未完成下載的情況:
- 若根本沒下載過,則從頭下載
- 若下載了一部分,先讀取下載了多少數(shù)據(jù),在告訴服務(wù)器從哪個(gè)地方開始繼續(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)生一個(gè)密鑰谁撼,并且用公鑰加密傳回給服務(wù)器
- 服務(wù)器用私鑰解密歧胁,得到密鑰,這個(gè)密鑰就是以后通信的鑰匙
網(wǎng)絡(luò)加密方式有哪些厉碟,各自的原理
- md5(哈希算法):把任意長度的字符串加密成一個(gè)128bit的大整數(shù)喊巍,并且是不可逆的
- RSA(非對稱算法加密):產(chǎn)生一對非對稱的公鑰和私鑰,公鑰加密箍鼓,私鑰解密崭参。私鑰加密,公鑰解密
- AES(對稱加密):加密和解密的密鑰是同一個(gè)
- base64(現(xiàn)代密碼學(xué)的基礎(chǔ)):原本8 bit一組的數(shù)據(jù)改為6bit一組款咖,不足的地方補(bǔ)0何暮,每兩個(gè)0用一個(gè) = 表示
說下你對Socket的理解?
- Socket就是對TCP/IP協(xié)議的封裝铐殃,一組接口
對xmpp的理解
- xmpp是基于XML流傳輸協(xié)議海洼,它用于即使消息以及在線現(xiàn)場偵探。
- XMPPStream用于連接服務(wù)器富腊,設(shè)置主機(jī)名坏逢,服務(wù)器域名,設(shè)置代理,注冊词疼、登陸和發(fā)消息所有時(shí)間的回調(diào)俯树。
- 通過jid與服務(wù)器進(jìn)行連接。連接成功做登陸或注冊的操作贰盗。用XMPPPresence做上線的操作许饿。
- 通過發(fā)送命令獲取好友。
- XMPPMessage類做消息的發(fā)送與消息的獲取舵盈。
- XMPPRoster負(fù)責(zé)好友的添加陋率,好友的獲取。
- XMPPRoom 提供多用戶的聊天支持
客戶端安全性處理方式秽晚?
- 敏感數(shù)據(jù)加密瓦糟,存儲到keyChain
Socket的實(shí)現(xiàn)原理及Socket之間是如何通信的
網(wǎng)絡(luò)圖片處理問題中怎么解決一個(gè)相同的網(wǎng)絡(luò)地址重復(fù)請求的問題?
- 圖片的名字就是url的md5.所以判斷url的md5是否存在本地即可
現(xiàn)在有一個(gè)資源網(wǎng)址(資源是什么未知),要請求這個(gè)資源你會考慮哪些問題?
- 根據(jù)響應(yīng)頭判斷數(shù)據(jù)類型(conten-type)
- 如果文件比較大,可以考慮斷點(diǎn)下載
- 子線程中下載
- 如果加密了要進(jìn)行相應(yīng)的解密
iOS緩存方案赴蝇?
- 網(wǎng)絡(luò)優(yōu)先:開始總是從網(wǎng)絡(luò)獲取菩浙,如果獲取失敗,從本地獲取句伶。
- 本地優(yōu)先:在一段時(shí)間內(nèi)從本地獲取劲蜻,當(dāng)超過這個(gè)時(shí)間,然后重新請求網(wǎng)絡(luò)數(shù)據(jù)考余。
- 混合(智能):打開程序先從本地獲取展示先嬉,然后請求數(shù)據(jù),請求完成后刷新界面楚堤。