IP
Internet Protocol 網(wǎng)絡(luò)協(xié)議
負(fù)責(zé)源主機(jī)和目標(biāo)主機(jī)之間的數(shù)據(jù)包傳輸
TCP
TCP為傳輸控制層協(xié)議寂祥,可靠
TCP通過三次握手來(lái)完成連接建立
- 客戶端首先向服務(wù)端發(fā)送一個(gè)SYN包(同步序列號(hào))和一個(gè)隨機(jī)序列號(hào)A
- 服務(wù)端收到后會(huì)回復(fù)客戶端一個(gè)SYN-ACK包和一個(gè)確認(rèn)號(hào)A+1河狐,同時(shí)再發(fā)送一個(gè)隨機(jī)序列號(hào)B
- 客戶端收到后會(huì)發(fā)送一個(gè)ACK包以及確認(rèn)號(hào)B+1和A+1
UDP
user data protocol 用戶數(shù)據(jù)報(bào)協(xié)議
UDP不可靠,側(cè)重快速傳輸
網(wǎng)絡(luò)七層協(xié)議
- 應(yīng)用層 HTTP
- 表示層
- 會(huì)話層
- 傳輸層 TCP UDP
- 網(wǎng)絡(luò)層
- 數(shù)據(jù)鏈路層 交換機(jī)励七,網(wǎng)卡
- 物理層
HTTP
請(qǐng)求頭
響應(yīng)頭
HTTP1.1 比 1.0 多了Host, PUT DELETE等request方法
HTTPS
HTTP默認(rèn)端口 80
HTTPS默認(rèn)端口 443
HTTPS加密
- 客戶端發(fā)起HTTPS請(qǐng)求
- 服務(wù)端的配置
采用HTTPS協(xié)議的服務(wù)器必須要有一套數(shù)字證書,自己可以制作摊欠,也可以向組織申請(qǐng)捌显。區(qū)別就是自己辦法的證書需要彈出提示頁(yè)面,客戶端驗(yàn)證通過才能繼續(xù)訪問陡厘。
這套證書其實(shí)就是一堆公鑰和私鑰抽米。可以理解為一個(gè)鎖頭和一把鑰匙糙置,只有你自己有這把鑰匙云茸,你可以把鎖頭給別人,別人可以利用這個(gè)鎖把重要的東西鎖起來(lái)谤饭,然后發(fā)給你标捺,因?yàn)橹挥心阌需€匙,所以只有你才能看到被這把鎖鎖起來(lái)的東西揉抵。 - 傳送證書
這個(gè)證書其實(shí)是公鑰亡容,包含了證書的頒發(fā)機(jī)構(gòu),過期時(shí)間 - 客戶端解析證書
這部分是由客戶端的TLS來(lái)完成冤今,首先會(huì)驗(yàn)證公鑰是否有效闺兢,比如頒發(fā)機(jī)構(gòu),過期時(shí)間等辟汰。之后生成一個(gè)隨機(jī)值列敲,用該公鑰證書對(duì)隨機(jī)值進(jìn)行加密。 - 傳送加密信息
主要是傳送客戶端生成的隨機(jī)值帖汞,以后客戶端和服務(wù)器端的通信就可以通過這個(gè)隨機(jī)值來(lái)對(duì)數(shù)據(jù)進(jìn)行對(duì)稱加密 - 服務(wù)器端解析加密信息
因?yàn)榉?wù)器有鑰匙戴而,所以可以獲取客戶端傳過來(lái)的隨機(jī)值。 - 傳輸加密后的信息
服務(wù)器用客戶端生成的隨機(jī)值對(duì)內(nèi)容進(jìn)行對(duì)象加密然后傳輸
8.客戶端解析加密信息
SSL協(xié)議是通過非對(duì)稱密鑰機(jī)制來(lái)保證雙方的身份認(rèn)證翩蘸,完成建立連接所意;在實(shí)際數(shù)據(jù)通信時(shí)通過對(duì)稱密鑰機(jī)制保障數(shù)據(jù)安全和傳輸速度
對(duì)稱加密:需要對(duì)加密和解密使用相同的密鑰和算法, DES
非對(duì)稱加密:需要公開密鑰和私有密鑰,使用公開密鑰對(duì)數(shù)據(jù)進(jìn)行加密扶踊,只有用對(duì)應(yīng)的私有密鑰才能解密泄鹏;如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有用對(duì)應(yīng)的公開密鑰才能解密
服務(wù)器返回狀態(tài)碼
100 消息
200 成功
300 重定向 在requestConfig中設(shè)置setRedirectsEnable(false)來(lái)禁止重定向 301:永久重定向 302:暫時(shí)重定向
400 請(qǐng)求錯(cuò)誤
500 服務(wù)器錯(cuò)誤
HTTP協(xié)議是基于TCP連接的秧耗,是應(yīng)用層協(xié)議备籽,主要解決如何包裝數(shù)據(jù)。socket是對(duì)TCP/IP協(xié)議的封裝分井,不是協(xié)議而是接口
GET:請(qǐng)求的數(shù)據(jù)會(huì)附在URL之后车猬,以尺锚?分割URL和傳輸數(shù)據(jù)珠闰,多個(gè)參數(shù)用&連接,空格轉(zhuǎn)換為+瘫辩,如果是中文伏嗜,直接把字符串用BASE64加密