计算机网络常见问题总结
計算機(jī)網(wǎng)絡(luò)常見問題總結(jié)
1. http 響應(yīng)碼 301 和 302 代表的是什么?有什么區(qū)別?
301:永久重定向
302:暫時重定向
它們的區(qū)別是,301 對搜索引擎優(yōu)化(SEO)更有利;302 有被提示為網(wǎng)絡(luò)攔截的風(fēng)險。
2. forward 和 redirect 的區(qū)別?
forward 是轉(zhuǎn)發(fā)和 redirect 是重定向:
- 地址欄 url 顯示:forward url 不會發(fā)生改變,redirect url 會發(fā)生改變;
- 數(shù)據(jù)共享:forward 可以共享 request 里的數(shù)據(jù),redirect 不能共享;
- 效率:forward 比 redirect 效率高;
3. 簡述 tcp 和 udp 的區(qū)別?
tcp 和 udp 是 OSI 模型中的運輸層中的協(xié)議。tcp 提供了可靠的通信傳輸,而 udp 則常被用來讓廣播和細(xì)節(jié)控制交給應(yīng)用的通信傳輸。
兩者的區(qū)別大致如下:
TCP是面向連接的,UDP是無連接的;
TCP是可靠的,UDP是不可靠的;
TCP只支持點對點通信,UDP支持一對一、一對多、多對一、多對多的通信模式;
TCP是面向字節(jié)流的,UDP是面向報文的;
TCP有擁塞控制機(jī)制;UDP沒有擁塞控制,適合媒體通信;
TCP首部開銷(20個字節(jié))比UDP的首部開銷(8個字節(jié))要大;
4. tcp 為什么要三次握手?兩次不行么?為什么?
如果采用兩次握手,那么只要服務(wù)器發(fā)送確認(rèn)數(shù)據(jù)包就會建立連接,但由于此時客戶端并未響應(yīng)服務(wù)器端請求,那么此時服務(wù)器端就會一直在等待客戶端,這樣服務(wù)器端就白白浪費了一定的資源。若采用握手,服務(wù)器端沒有收到來自客戶端的再次確認(rèn),則就會知道客戶端并沒有要求建立請求,就不會浪費服務(wù)器的資源。
5. 說一下 tcp 粘包是怎么產(chǎn)生的?
tcp 粘包問題主要是因為接收方不知道消息之間的界限,不知道一次性提取多少字節(jié)的數(shù)據(jù)所造成的。tcp粘包 可能發(fā)生在發(fā)送端或者接收端,分別來看各種產(chǎn)生粘包的原因:
- 發(fā)送端粘包:發(fā)送端需要等緩沖區(qū)滿才發(fā)送出去,造成粘包
- 接收方粘包:接收方不及時接收緩沖區(qū)的包,造成多個包接收。
詳細(xì)請看: tcp 粘包問題
6. OSI 的七層模型都有哪些?
- 物理層:利用傳輸介質(zhì)為數(shù)據(jù)鏈路層提供物理連接,實現(xiàn)比特流的透明傳輸。
- 數(shù)據(jù)鏈路層:負(fù)責(zé)建立和管理節(jié)點的鏈路。
- 網(wǎng)絡(luò)層:通過路由選擇算法,為報文或分組通過子網(wǎng)選擇最適當(dāng)?shù)穆窂健?/li>
- 傳輸層:向用戶提供可靠的端到端的差錯和流量控制,保證報文的正確傳輸。
- 會話層:向兩個實體的表示層提供建立和使用連接的方法。
- 表示層:處理用戶信息的表示問題,如編碼、數(shù)據(jù)格式轉(zhuǎn)換和加密解密等。
- 應(yīng)用層:直接向用戶提供服務(wù),完成用戶希望在網(wǎng)絡(luò)上完成的各種工作。
7. get 和 post 請求有什么區(qū)別?
8. 如何實現(xiàn)跨域?
實現(xiàn)跨域有以下幾種方案:
- 服務(wù)器端運行跨域 設(shè)置 CORS 等于*;
- 在單個接口使用注解 @CrossOrigin 運行跨域;
- 使用 jsonp 跨域;
9. 說一下 JSONP 實現(xiàn)原理?
jsonp:JSON with Padding,它是利用 script 標(biāo)簽的 src 連接可以訪問不同源的特性,加載遠(yuǎn)程返回的“JS 函數(shù)”來執(zhí)行的。
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的计算机网络常见问题总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM常见问题总结
- 下一篇: 计算机网络知识点补充