《逆襲進(jìn)大廠》系列之《計(jì)算機(jī)網(wǎng)絡(luò)》篇No.71-80
本文源自于個(gè)人github倉(cāng)庫(kù):https://github.com/forthespada/InterviewGuide
github倉(cāng)庫(kù)內(nèi)有PDF版本下載方式,歡迎各位star、fork~
立志收錄計(jì)算機(jī)校招、社招面試最全面試八股文,無(wú)內(nèi)鬼來(lái)點(diǎn)八股文~
71、HTTPS是什么
HTTPS 并不是新協(xié)議,而是讓 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信,也就是說(shuō) HTTPS 使用了隧道進(jìn)行通信。通過(guò)***L,HTTPS 具有了加密(防竊聽(tīng))、認(rèn)證(防偽裝)和完整性保護(hù)(防篡改)。
72、HTTP的缺點(diǎn)有哪些?
- 使用明文進(jìn)行通信,內(nèi)容可能會(huì)被竊聽(tīng);
- 不驗(yàn)證通信方的身份,通信方的身份有可能遭遇偽裝;
- 無(wú)法證明報(bào)文的完整性,報(bào)文有可能遭篡改。
73、HTTPS采用的加密方式有哪些?是對(duì)稱還是非對(duì)稱?
HTTPS 采用混合的加密機(jī)制,使用非對(duì)稱密鑰加密用于傳輸對(duì)稱密鑰來(lái)保證傳輸過(guò)程的安全性,之后使用對(duì)稱密鑰加密進(jìn)行通信來(lái)保證通信過(guò)程的效率。
確保傳輸安全過(guò)程(其實(shí)就是rsa原理):
- Client給出協(xié)議版本號(hào)、一個(gè)客戶端生成的隨機(jī)數(shù)(Client random),以及客戶端支持的加密方法。
- Server確認(rèn)雙方使用的加密方法,并給出數(shù)字證書、以及一個(gè)服務(wù)器生成的隨機(jī)數(shù)(Server random)。
- Client確認(rèn)數(shù)字證書有效,然后生成呀一個(gè)新的隨機(jī)數(shù)(Premaster secret),并使用數(shù)字證書中的公鑰,加密這個(gè)隨機(jī)數(shù),發(fā)給Server。
- Server使用自己的私鑰,獲取Client發(fā)來(lái)的隨機(jī)數(shù)(Premaster secret)。
- Client和Server根據(jù)約定的加密方法,使用前面的三個(gè)隨機(jī)數(shù),生成”對(duì)話密鑰”(session key),用來(lái)加密接下來(lái)的整個(gè)對(duì)話過(guò)程。
74、為什么有的時(shí)候刷新頁(yè)面不需要重新建立 SSL 連接?
TCP 連接有的時(shí)候會(huì)被瀏覽器和服務(wù)端維持一段時(shí)間,TCP 不需要重新建立,SSL 自然也會(huì)用之前的。
75、SSL中的認(rèn)證中的證書是什么?了解過(guò)嗎?
通過(guò)使用 證書 來(lái)對(duì)通信方進(jìn)行認(rèn)證。
數(shù)字證書認(rèn)證機(jī)構(gòu)(CA,Certificate Authority)是客戶端與服務(wù)器雙方都可信賴的第三方機(jī)構(gòu)。
服務(wù)器的運(yùn)營(yíng)人員向 CA 提出公開(kāi)密鑰的申請(qǐng),CA 在判明提出申請(qǐng)者的身份之后,會(huì)對(duì)已申請(qǐng)的公開(kāi)密鑰做數(shù)字簽名,然后分配這個(gè)已簽名的公開(kāi)密鑰,并將該公開(kāi)密鑰放入公開(kāi)密鑰證書后綁定在一起。
進(jìn)行 HTTPS 通信時(shí),服務(wù)器會(huì)把證書發(fā)送給客戶端。客戶端取得其中的公開(kāi)密鑰之后,先使用數(shù)字簽名進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò),就可以開(kāi)始通信了。
76、HTTP如何禁用緩存?如何確認(rèn)緩存?
HTTP/1.1 通過(guò) Cache-Control 首部字段來(lái)控制緩存。
禁止進(jìn)行緩存
no-store 指令規(guī)定不能對(duì)請(qǐng)求或響應(yīng)的任何一部分進(jìn)行緩存。
Cache-Control: no-store
強(qiáng)制確認(rèn)緩存
no-cache 指令規(guī)定緩存服務(wù)器需要先向源服務(wù)器驗(yàn)證緩存資源的有效性,只有當(dāng)緩存資源有效時(shí)才能使用該緩存對(duì)客戶端的請(qǐng)求進(jìn)行響應(yīng)。
Cache-Control: no-cache
77、GET與POST傳遞數(shù)據(jù)的最大長(zhǎng)度能夠達(dá)到多少呢?
get 是通過(guò)URL提交數(shù)據(jù),因此GET可提交的數(shù)據(jù)量就跟URL所能達(dá)到的最大長(zhǎng)度有直接關(guān)系。
很多文章都說(shuō)GET方式提交的數(shù)據(jù)最多只能是1024字節(jié),而實(shí)際上,URL不存在參數(shù)上限的問(wèn)題,HTTP協(xié)議規(guī)范也沒(méi)有對(duì)URL長(zhǎng)度進(jìn)行限制。
這個(gè)限制是特定的瀏覽器及服務(wù)器對(duì)它的限制,比如IE對(duì)URL長(zhǎng)度的限制是2083字節(jié)(2K+35字節(jié))。對(duì)于其他瀏覽器,如FireFox,Netscape等,則沒(méi)有長(zhǎng)度限制,這個(gè)時(shí)候其限制取決于服務(wù)器的操作系統(tǒng);即如果url太長(zhǎng),服務(wù)器可能會(huì)因?yàn)榘踩矫娴脑O(shè)置從而拒絕請(qǐng)求或者發(fā)生不完整的數(shù)據(jù)請(qǐng)求。
post 理論上講是沒(méi)有大小限制的,HTTP協(xié)議規(guī)范也沒(méi)有進(jìn)行大小限制,但實(shí)際上post所能傳遞的數(shù)據(jù)量大小取決于服務(wù)器的設(shè)置和內(nèi)存大小。
因?yàn)槲覀円话鉷ost的數(shù)據(jù)量很少超過(guò)MB的,所以我們很少能感覺(jué)的到post的數(shù)據(jù)量限制,但實(shí)際中如果你上傳文件的過(guò)程中可能會(huì)發(fā)現(xiàn)這樣一個(gè)問(wèn)題,即上傳個(gè)頭比較大的文件到服務(wù)器時(shí)候,可能上傳不上去。
以php語(yǔ)言來(lái)說(shuō),查原因的時(shí)候你也許會(huì)看到有說(shuō)PHP上傳文件涉及到的參數(shù)PHP默認(rèn)的上傳有限定,一般這個(gè)值是2MB,更改這個(gè)值需要更改php.conf的post_max_size這個(gè)值。這就很明白的說(shuō)明了這個(gè)問(wèn)題了。
78、網(wǎng)絡(luò)層常見(jiàn)協(xié)議?可以說(shuō)一下嗎?
協(xié)議 | 名稱 | 作用 |
---|---|---|
IP | 網(wǎng)際協(xié)議 | IP協(xié)議不但定義了數(shù)據(jù)傳輸時(shí)的基本單元和格式,還定義了數(shù)據(jù)報(bào)的遞交方法和路由選擇 |
ICMP | 超文本傳輸安全協(xié)議 | ICMP就是一個(gè)“錯(cuò)誤偵測(cè)與回報(bào)機(jī)制”,其目的就是讓我們能夠檢測(cè)網(wǎng)路的連線狀況﹐也能確保連 |
剩余60%內(nèi)容,訂閱專欄后可繼續(xù)查看/也可單篇購(gòu)買
- 本專欄成功幫助阿秀拿到字節(jié)跳動(dòng)SP的offer,脫胎于個(gè)人秋招時(shí)期的筆記總結(jié)。其中收納C++(217道)、操作系統(tǒng)(62道)、計(jì)算機(jī)網(wǎng)絡(luò)(100道)、數(shù)據(jù)結(jié)構(gòu)與算法、數(shù)據(jù)庫(kù)(MySQL、Redis)等高頻問(wèn)答知識(shí)點(diǎn)。 - 本專欄適合于校招、社招等找工作黨,后來(lái)逐漸收錄一些學(xué)弟學(xué)妹的上岸經(jīng)驗(yàn)和方法,歡迎訂閱,持續(xù)更新ing。