計(jì)算機(jī)網(wǎng)絡(luò)安全
1.Get 和 Post 的區(qū)別
結(jié)構(gòu):get 有請(qǐng)求體,post沒有請(qǐng)求體
應(yīng)用場(chǎng)景:get 用于獲取數(shù)據(jù),post用于提交數(shù)據(jù);
緩存:get 的緩存保存在瀏覽器和web服務(wù)器日志中;
傳輸方式:get 使用明文傳輸,post請(qǐng)求保存在請(qǐng)求體中;
請(qǐng)求長度:get 長度限制在2kb以內(nèi)。
2.常見的HTTP請(qǐng)求
get、post、put、delete、head
3.http1.0 / http1.1 / http2.0 之間有哪些區(qū)別?
http1.0 瀏覽器與服務(wù)器只保持短暫的連接,每次請(qǐng)求都需要向,服務(wù)器建立一個(gè)TCP
連接;
http1.0 存在寬帶資源浪費(fèi)的現(xiàn)象,例如只需要某個(gè)對(duì)象的一部分,而服務(wù)器卻把整個(gè)對(duì)象傳輸過來;
http1.1 支持長鏈接,默認(rèn)開啟了keep-alive ,彌補(bǔ)了http1.0每次傳輸都需要?jiǎng)?chuàng)建鏈接的問題;
http1.1 使用持久連接來時(shí)多個(gè)HTTP請(qǐng)求復(fù)用同一個(gè)TCP連接;
http1.1 支持管道傳輸 ,一個(gè)請(qǐng)求發(fā)出去,不必等它回來,就可以發(fā)送第二次;
http1.1 引入了更多的緩存策略 Etag 、If-Match、if-None-Match
http1.1 中新增了 host 字段,用來指定服務(wù)器的域名。
二進(jìn)制分幀、多路復(fù)用、數(shù)據(jù)流、頭部壓縮、基于HTTPS相對(duì)安全、服務(wù)器推送
http2.0 使用二進(jìn)制協(xié)議,頭部信息和數(shù)據(jù)體都是二進(jìn)制,統(tǒng)稱為’幀’;
http2.0 使用多路復(fù)用TCP連接,客戶端和服務(wù)端可以同時(shí)發(fā)送多個(gè)請(qǐng)求;
http2.0 將每個(gè)請(qǐng)求和回應(yīng)都標(biāo)記一個(gè)數(shù)據(jù)流ID;
http2.0 頭部使用gzip 和 compress 壓縮頭部信息,在客戶端和服務(wù)器之間共同維護(hù)一張頭信息索引表,每次請(qǐng)求只發(fā)送索引號(hào),就能找到相應(yīng)的頭部信息表;
http2. 0 服務(wù)端不再是被動(dòng)響應(yīng),可以主動(dòng)向客戶端發(fā)送消息。
5.瀏覽器中輸入www.baidu.com 發(fā)生了什么?
(1)、首先判斷輸入的url是一個(gè)合法的連接還是待搜索關(guān)鍵詞,如果是個(gè)合法的url ??;
(2)、就進(jìn)行緩存判斷,如果瀏覽器中有緩存資源,則直接訪問緩存資源;如果沒有,則開始??;
(3)、DNS解析,客戶端給本地DNS服務(wù)器發(fā)送一個(gè)請(qǐng)求,查看是否存在緩存,有就直接訪問;
? 如果沒有,就向根域名服務(wù)器發(fā)送請(qǐng)求,根域名服務(wù)器發(fā)現(xiàn)是.com或者.cn后綴的域名;
? 就交給頂級(jí)域名服務(wù)器,頂級(jí)域名服務(wù)器返回baidu.com域名信息;
? 并讓本地DNS轉(zhuǎn)向訪問權(quán)威域名服務(wù)器,權(quán)威域名服務(wù)器返回www .baidu. com對(duì)應(yīng)的IP地址,
? 同時(shí)本地DNS緩存該ip地址,客戶端收到IP地址后進(jìn)行訪問。
(4)、CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))
? 如果服務(wù)器使用了CDN,DNS返回的不再是IP地址,而是CNAME別名,指向全局均衡CNAME;
? 瀏覽器發(fā)送url給DNS服務(wù)器,DNS進(jìn)行域名解析,解析發(fā)現(xiàn)該url有一個(gè)CDN專用的DNS服務(wù)器;
? DNS會(huì)將解析權(quán)交給CNAME指向的CDN專用DNS服務(wù)器,CDN專用DNS服務(wù)器將IP返回給瀏覽器;
? 瀏覽器向CDN全局負(fù)載均衡服務(wù)器發(fā)起請(qǐng)求,CDN全局負(fù)載均衡服務(wù)器根據(jù)IP;
? 找到距離用戶最近的區(qū)域負(fù)載均衡服務(wù)器,選擇合適的緩存服務(wù)器響應(yīng)用戶的請(qǐng)求。
?
(5)、TCP三次握手:
? 第一次握手,客戶端向服務(wù)器發(fā)送一個(gè)SYN的報(bào)文,并初始化序列 ISN;
? 第二次握手,服務(wù)端收到客戶端的SYN后,將ISN+1作為自己的ACK值,并以自己的SYN作為應(yīng)答;
? 第三次握手,客戶端收到服務(wù)端的SYN后,向服務(wù)端發(fā)送一個(gè)ACK報(bào)文,值為ISN+1,服務(wù)器收到后雙方就建立了連接。
??為什么是三次握手?不是兩次、四次?
? 三次握手可以阻止重復(fù) 歷史連接的初始化(主要原因);
? 三次握手可以同步雙方的初始序列號(hào);
? 三次握手可以避免資源浪費(fèi)。
??SYN是什么?ACK又是什么?
(5)、頁面渲染:瀏覽器將html解析成DOM樹,將css解析成CSSOM樹,結(jié)合DOM樹和CSSOM樹生成渲染樹。接著解析
(6)、TCP四次揮手:
? 第一次揮手,客戶端向服務(wù)器發(fā)送一個(gè)FIN的報(bào)文,之后進(jìn)入FIN_Wait_1狀態(tài);
? 第二次揮手,服務(wù)端收到該報(bào)文后,向客戶端發(fā)送ACK報(bào)文作為應(yīng)答,接著服務(wù)端進(jìn)入closed_wait狀態(tài);
? 第三次揮手,客戶端收到服務(wù)端的ACK報(bào)文后,進(jìn)入FIN_Wait_2狀態(tài),等待服務(wù)端數(shù)據(jù)處理完,繼續(xù)向客戶端發(fā)送一個(gè)FIN報(bào)文,之后服務(wù)端進(jìn)入了Last_ack狀態(tài);
? 第四次揮手,客戶端收到服務(wù)端的FIN報(bào)文后,就進(jìn)入了Closed 狀態(tài),至此服務(wù)端已經(jīng)完成了連接關(guān)閉??蛻舳嗽诮?jīng)過2msl后,自動(dòng)進(jìn)入closed狀態(tài),至此客戶端進(jìn)入了完成連接關(guān)閉。
6.對(duì)Keep-alive的理解
http1.0 默認(rèn)開啟的長鏈接(keep-alive
),使用持久連接來使多個(gè)http請(qǐng)求復(fù)用同一個(gè)TCP連接,數(shù)據(jù)傳輸完成保持TCP連接不斷開。
具有①減少CPU和內(nèi)存的使用。②降低阻塞控制。③減小后續(xù)請(qǐng)求延遲。
7.什么是https協(xié)議?TCL/SSL 的工作原理是什么?
https是為了解決http中 ①內(nèi)容可能被監(jiān)聽②不驗(yàn)證通信方身份的問題 產(chǎn)生的,這里的s
表示TLS/SSL協(xié)議,其中SSL的實(shí)現(xiàn),主要依賴于對(duì)稱加密、非對(duì)稱加密、摘要算法、數(shù)字簽名這幾種手段。
對(duì)稱加密:加密和解密使用的密鑰都是同一個(gè),是對(duì)稱的。
非對(duì)稱加密:存在兩個(gè)密鑰,一個(gè)公鑰,一個(gè)私鑰。公鑰和私鑰都可以用來加密解密,公鑰加密的必須使用私鑰解密。
混合加密:對(duì)稱加密+非對(duì)稱加密,具體做法:發(fā)送密文的一方使用對(duì)方的公鑰對(duì)“對(duì)稱密鑰”進(jìn)行加密,然后對(duì)方用自己的密鑰對(duì)“對(duì)稱的密鑰”解密;
摘要算法:把任意長度的密鑰壓縮成固定長度,形成了一個(gè)獨(dú)一無二的的”摘要“字符串;
摘要算法可以理解為“單向"加密算法,常用的算法是 SHA-2,只有算法,沒有密鑰,加密后的數(shù)據(jù)無法解密;
但是不具有機(jī)密性,如果黑客把傳遞的消息和摘要一起改了,完整鑒別不出完整性!
數(shù)字簽名:私鑰對(duì)摘要的加密,可以由公鑰解密后驗(yàn)證,把公鑰私鑰的用法反過來,私鑰加密、公鑰解密。
8.HTTPS是如何保證安全的?
? 數(shù)字證書認(rèn)證機(jī)構(gòu)(CA): 服務(wù)端向數(shù)字證書認(rèn)證機(jī)構(gòu)提出公開密鑰申請(qǐng),數(shù)字證書認(rèn)證機(jī)構(gòu)確定申請(qǐng)者的身份后,會(huì)對(duì)已申請(qǐng)的公開密鑰做數(shù)字簽名;然后分配這個(gè)已簽名的公開密鑰,并將公開密鑰放入公鑰證書后綁定在一起;服務(wù)端會(huì)將這份數(shù)字證書發(fā)送給客戶端,以進(jìn)行非對(duì)稱加密通信;接收到證書的客戶端使用數(shù)字證書認(rèn)證機(jī)構(gòu)的公開密鑰,對(duì)服務(wù)器發(fā)送過來的數(shù)字簽名進(jìn)行認(rèn)證,驗(yàn)證通過,則證明認(rèn)證服務(wù)器公開密鑰是真正有效的認(rèn)證機(jī)構(gòu)。
9.常見的狀態(tài)碼
狀態(tài)碼 | 含義 | 描述 |
---|---|---|
1xx | 信息狀態(tài)碼 | 接收的請(qǐng)求正在處理 |
2xx | 成功狀態(tài)碼 | 請(qǐng)求正常處理完畢 |
204 | 響應(yīng)頭沒有body數(shù)據(jù) | |
206 | 相應(yīng)頭的body不是資源的全部 | |
3xx | 重定向 | 客戶端請(qǐng)求資源變動(dòng),需重新發(fā)送請(qǐng)求 |
301 | 永久重定向 | 請(qǐng)求資源不存在了,需要用新的url訪問 |
302 | 臨時(shí)重定向 | 請(qǐng)求資源還在,暫時(shí)用新的url訪問 |
304 | 緩存重定向 | 重定向已緩存文件 |
4xx | 客戶端錯(cuò)誤 | |
403 | 服務(wù)器禁止訪問資源 | |
404 | 請(qǐng)求的資源找不到 | |
5xx | 服務(wù)器內(nèi)部錯(cuò)誤 | |
501 | 客戶端請(qǐng)求的功能還不支持 | |
502 | 服務(wù)器自身工作正常,訪問后端服務(wù)器發(fā)生錯(cuò)誤 | |
503 | 服務(wù)器很忙,暫時(shí)無法響應(yīng) |
10.TCP和UDP的區(qū)別
UDP(用戶數(shù)據(jù)報(bào)協(xié)議):對(duì)應(yīng)用層交下來的報(bào)文,不合并、不拆分,只是在其上面加個(gè)首部就交給網(wǎng)絡(luò)層;
TCP(傳輸控制協(xié)議):把上應(yīng)用層交下來的數(shù)據(jù)看成無結(jié)構(gòu)的字節(jié)流來發(fā)送。
①TCP是面向連接協(xié)議,建立連接3次握手,斷開連接4次揮手;UDP是面向無連接,接收端從消息隊(duì)列讀取,發(fā)送端將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)。
②TCP提供可靠服務(wù),傳輸過程可以確保數(shù)據(jù)無差錯(cuò),不丟失;UDP盡可能傳遞數(shù)據(jù),但不保證數(shù)據(jù)是否安全到達(dá)。
③TCP面向字節(jié)流,將應(yīng)用層報(bào)文看作無結(jié)構(gòu)的字節(jié)流,芬姐為多個(gè)報(bào)文段傳輸后,在目的站重新裝配;UDP面向報(bào)文,不合并也不拆分,只保留報(bào)文邊界。
④TCP只能點(diǎn)對(duì)點(diǎn),雙工傳輸;UDP支持一對(duì)一、一對(duì)多、多對(duì)一和多對(duì)多傳輸。
⑤TCP傳輸效率低;UDP傳輸效率高。
11.TCP和UDP的使用場(chǎng)景
TCP:SMTP(電子郵件)、Telnet(傳輸終端接入)、Http(萬維網(wǎng))、FTP(文件傳輸系統(tǒng));
UDP:DNS(域名服務(wù)系統(tǒng))、TFTP(文件傳輸)、SNMP(網(wǎng)絡(luò)管理)、NFS(遠(yuǎn)程文件服務(wù)器);
12.TCP粘包是怎么回事? 如何解決?
如果一次請(qǐng)求發(fā)送的數(shù)據(jù)量較小,沒達(dá)到緩沖區(qū)大小,TCP則會(huì)將多個(gè)請(qǐng)求合并為同一個(gè)請(qǐng)求進(jìn)行發(fā)送,這就造成了TCP粘包的問題。
解決方案:①發(fā)送端將每個(gè)報(bào)封裝成固定長度;
? ②發(fā)送端在每個(gè)包末尾使用固定分隔符;文章來源:http://www.zghlxwxcb.cn/news/detail-821947.html
? ③將消息分成頭部和消息體,頭部信息足夠長才算讀到一個(gè)完整的消息。文章來源地址http://www.zghlxwxcb.cn/news/detail-821947.html
到了這里,關(guān)于0121-1-計(jì)算機(jī)網(wǎng)絡(luò)安全的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!