HTTP協(xié)議(超文本傳輸協(xié)議)
OSI網(wǎng)絡(luò)七層協(xié)議:
應(yīng)用層、表示層、會話層 、傳輸層、網(wǎng)絡(luò)層 、數(shù)據(jù)鏈路層、物理層
HTTP的請求方式:
GET、POST、PUT、DELETE、HEAD、OPTIONS
GET和POST方式的區(qū)別:
GET的請求參數(shù)一般以?分割拼接到URL后面,POST請求參數(shù)在Body里面
GET參數(shù)長度限制為2048個字符,POST一般是沒限制的
GET請求由于參數(shù)裸露在URL中, 是不安全的,POST請求則是相對安全
之所以說是相對安全,是因為,如果POST雖然參數(shù)非明文,但如果被抓包,GET和POST一樣都是不安全的。(HTTPS該用還是得用)
?
HTTPS協(xié)議
HTTPS和HTTP的區(qū)別
HTTPS協(xié)議 = HTTP協(xié)議 + SSL/TLS協(xié)議
SSL的全稱是Secure Sockets Layer,即安全套接層協(xié)議,是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。TLS的全稱是Transport Layer Security,即安全傳輸層協(xié)議。
即HTTPS是安全的HTTP。
服務(wù)器端的公鑰和私鑰,用來進行非對稱加密
客戶端生成的隨機密鑰,用來進行對稱加密
?
三次握手

四次揮手

為什么建立連接只用三次握手,而斷開連接卻要四次揮手?
服務(wù)端的FIN和ACK需要分開發(fā),并不是像三次握手中那樣,SYN可以和ACK同步發(fā),所以就需要四次揮手
在四次揮手中,客戶端為什么在TIME_WAIT后必須等待2MSL時間呢?
為了保證客戶端發(fā)送的最后一個ACK報文段能夠到達(dá)服務(wù)端。
~
DNS
因特網(wǎng)上的主機,可以使用主機名和IP地址來標(biāo)識。主機名是用于人們記憶的,IP地址是方便路由器處理,為了折衷這兩種方式,我們需要一種能進行主機名到IP地址轉(zhuǎn)換的目錄服務(wù)。這就是域名系統(tǒng)(Domain Name System,DNS)的主要任務(wù)。
DNS是:
1、一個由分層的DNS服務(wù)器實現(xiàn)的分布式數(shù)據(jù)庫
2、一個使得主機能夠查詢分布式數(shù)據(jù)庫的應(yīng)用層協(xié)議
DNS查詢鏈:
本地DNS服務(wù)器-->根DNS服務(wù)器-->頂級域DNS服務(wù)器-->權(quán)威DNS服務(wù)器
迭代查詢和遞歸查詢
從請求主機到本地DNS服務(wù)器的查詢是遞歸,其余查詢是迭代的這種方式。
DNS緩存
為了改善時延性能并減少在因特網(wǎng)上到處傳輸?shù)腄NS報文數(shù)量,DNS廣泛使用了緩存技術(shù)。有DNS的地方,就有緩存。瀏覽器、操作系統(tǒng)、本地 DNS服務(wù)器、根DNS服務(wù)器,它們都會對DNS結(jié)果做一定程度的緩存。
?
Cookie與Session
都是記錄客戶狀態(tài)的機制,區(qū)別在于:
1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。
2、cookie相比session不是很安全,別人可以分析存放在本地的cookie并進行cookie欺騙,考慮到安全應(yīng)當(dāng)使用session。
3、session會在一定時間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會比較占用你服務(wù)器的性能,考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用cookie。
4、單個cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。而session存儲在服務(wù)端,可以無限量存儲
5、所以:將登錄信息等重要信息存放為session;其他信息如果需要保留,可以放在cookie中