一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java經典面試題匯總:網絡編程

Java經典面試題匯總:網絡編程

2021-10-18 10:35讓程序飛 Java教程

本篇總結的是Java 網絡編程相關的面試題,后續會持續更新,希望我的分享可以幫助到正在備戰面試的實習生或者已經工作的同行,如果發現錯誤還望大家多多包涵,不吝賜教,謝謝

1. HTTP 響應碼 301 和 302 代表的是什么?有什么區別?

301:永久重定向。 302:暫時重定向。

它們的區別是,301 對搜索引擎優化(SEO)更加有利;302 有被提示為網絡攔截的風險。

2. 簡單說一下http協議?

HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用于從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。HTTP是一個基于TCP/IP通信協議被用于在Web瀏覽器和網站服務器之間傳遞信息,HTTP協議以明文方式發送內容,不提供任何方式的數據加密。

3. HTTP與HTTPS的區別?

  • https協議需要到CA申請證書,一般免費證書較少,因而需要一定費用。
  • http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl/tls加密傳輸協議。
  • http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
  • http的連接很簡單,是無狀態的;HTTPS協議是由SSL/TLS+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

4. HTTP協議下客戶端請求報文是什么?

HTTP請求由四個部分組成,分別是:

  • 請求行(request line)
  • 請求頭部(header)
  • 空行
  • 請求數據

5. HTTP協議服務器響應報文有哪些?

HTTP響應也由四個部分組成,分別是:

  • 狀態行
  • 消息報頭
  • 空行
  • 響應正文

6. HTTP協議中的請求方法有哪些?

一共八種請求方法:GET, POST ,HEAD,OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

方法 描述
GET 請求指定的頁面信息,并返回實體主體。
POST

向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。

POST請求可能會導致新的資源的建立和/或已有資源的修改。

HEAD 類似于get請求,只不過返回的響應中沒有具體的內容,用于獲取報頭
OPTIONS 允許客戶端查看服務器的性能。
PUT 從客戶端向服務器傳送的數據取代指定的文檔的內容。
DELETE 請求服務器刪除指定的頁面。
TRACE 回顯服務器收到的請求,主要用于測試或診斷。
CONNECT HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器

7. 常見的HTTP狀態碼有哪些?

當瀏覽者訪問一個網頁時,瀏覽者的瀏覽器會向網頁所在服務器發出請求。當瀏覽器接收并顯示網頁前,此網頁所在的服務器會返回一個包含HTTP狀態碼的信息頭(server header)用以響應瀏覽器的請求。

HTTP狀態碼的英文為HTTP Status Code。下面是常見的HTTP狀態碼:

  • 200 - 請求成功
  • 301 - 資源(網頁等)被永久轉移到其它URL
  • 404 - 請求的資源(網頁等)不存在
  • 500 - 內部服務器錯誤

8. forward 和 redirect 的區別?

  • forward 是轉發 和 redirect 是重定向:
  • 地址欄 url 顯示:foward url 不會發生改變,redirect url 會發生改變;
  • 數據共享:forward 可以共享 request 里的數據,redirect 不能共享;
  • 效率:forward 比 redirect 效率高。

9. 簡述 tcp 和 udp的區別?

tcp 和 udp 是 OSI 模型中的運輸層中的協議。tcp 提供可靠的通信傳輸,而 udp 則常被用于讓廣播和細節控制交給應用的通信傳輸。 兩者的區別大致如下:

  • tcp 面向連接,udp 面向非連接即發送數據前不需要建立鏈接;
  • tcp 提供可靠的服務(數據傳輸),udp 無法保證;
  • tcp 面向字節流,udp 面向報文;
  • tcp 數據傳輸慢,udp 數據傳輸快;

10. TCP 為什么要三次握手,兩次不行嗎?為什么?

如果采用兩次握手,那么只要服務器發出確認數據包就會建立連接,但由于客戶端此時并未響應服務器端的請求,那此時服務器端就會一直在等待客戶端, 這樣服務器端就白白浪費了一定的資源。若采用三次握手,服務器端沒有收到來自客戶端的再此確認,則就會知道客戶端并沒有要求建立請求,就不會浪費服務器的資源。

11. 說一下 TCP 粘包是怎么產生的?

TCP 粘包可能發生在發送端或者接收端,分別來看兩端各種產生粘包的原因:

  • 發送端粘包:發送端需要等緩沖區滿才發送出去,造成粘包;
  • 接收方粘包:接收方不及時接收緩沖區的包,造成多個包接收。

12. OSI 的七層模型都有哪些?

  • 物理層:利用傳輸介質為數據鏈路層提供物理連接,實現比特流的透明傳輸。
  • 數據鏈路層:負責建立和管理節點間的鏈路。
  • 網絡層:通過路由選擇算法,為報文或分組通過通信子網選擇最適當的路徑。
  • 傳輸層:向用戶提供可靠的端到端的差錯和流量控制,保證報文的正確傳輸。
  • 會話層:向兩個實體的表示層提供建立和使用連接的方法。
  • 表示層:處理用戶信息的表示問題,如編碼、數據格式轉換和加密解密等。
  • 應用層:直接向用戶提供服務,完成用戶希望在網絡上完成的各種工作。

13. GET和POST的區別?

POST和GET都是向服務器提交數據,并且都會從服務器獲取數據。

1、傳送方式:get通過地址欄傳輸,post通過報文傳輸。

2、傳送長度:get參數有長度限制(受限于url長度),而post無限制

3、GET和POST還有一個重大區別,簡單的說:

GET產生一個TCP數據包;POST產生兩個TCP數據包

長的說:

對于GET方式的請求,瀏覽器會把http header和data一并發送出去,服務器響應200(返回數據);

而對于POST,瀏覽器先發送header,服務器響應100 continue,瀏覽器再發送data,服務器響應200 ok(返回數據)。

建議:

1、get方式的安全性較Post方式要差些,包含機密信息的話,建議用Post數據提交方式;

2、在做數據查詢時,建議用Get方式;而在做數據添加、修改或刪除時,建議用Post方式;

14. 如何實現跨域?

實現跨域有以下幾種方案:

服務器端運行跨域 設置 CORS 等于 *;

在單個接口使用注解 @CrossOrigin 運行跨域;

使用 jsonp 跨域;

15. 什么是WebSocket?

WebSocket是一種在單個TCP連接上進行全雙工通信的協議。

WebSocket使得客戶端和服務器之間的數據交換變得更加簡單,允許服務端主動向客戶端推送數據。在WebSocket API中,瀏覽器和服務器只需要完成一次握手,兩者之間就直接可以創建持久性的連接,并進行雙向數據傳輸。

16. WebSocket與HTTP的關系

相同點

1. 都是一樣基于TCP的,都是可靠性傳輸協議。

2. 都是應用層協議。

不同點

1. WebSocket是雙向通信協議,模擬Socket協議,可以雙向發送或接受信息。HTTP是單向的。

2. WebSocket是需要握手進行建立連接的。

聯系

WebSocket在建立握手時,數據是通過HTTP傳輸的。但是建立之后,在真正傳輸時候是不需要HTTP協議的。

17. WebSocket與Socket的關系

Socket其實并不是一個協議,而是為了方便使用TCP或UDP而抽象出來的一層,是位于應用層和傳輸控制層之間的一組接口。

當兩臺主機通信時,必須通過Socket連接,Socket則利用TCP/IP協議建立TCP連接。TCP連接則更依靠于底層的IP協議,IP協議的連接則依賴于鏈路層等更低層次。WebSocket則是一個典型的應用層協議。

區別

Socket是傳輸控制層協議,WebSocket是應用層協議。

總結

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!

原文鏈接:https://blog.csdn.net/javanbme/article/details/117520214

延伸 · 閱讀

精彩推薦
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7472021-02-04
主站蜘蛛池模板: 午夜亚洲WWW湿好爽 午夜想想爱午夜剧场 | 欧美一区二区视频 | 国产高清视频网站 | 日韩在线免费看 | 韩国最新理论三级在线观看 | 我的青梅竹马是消防员2季未增删免费 | 日韩精品首页 | 亚洲精品久久久WWW游戏好玩 | tobu8中国在线观看免费视频 | 热辣小秘书办公室 | 无码国产成人777爽死在线观看 | 三上悠亚精品专区久久 | 无限韩国视频免费播放 | 99网站在线观看 | 精品久久久久久亚洲精品 | 午夜国产精品视频在线 | 国产午夜精品久久久久小说 | 免费福利资源站在线视频 | 好爽视频 | 国产亚洲一欧美一区二区三区 | 99久在线 | 无套内谢大学生A片 | 亚洲精品第五页 | 2020国产精品永久在线观看 | 亚洲精品第一国产综合高清 | 免费一级日本c片完整版 | 成人免费在线视频观看 | 精品在线播放 | 放荡的女老板bd中文字幕 | 久久re这里精品在线视频7 | japanese超丰满人妖 | 草草视频免费观看 | 扒开双腿猛进入爽爽视频ai | 污到湿的爽文免费阅读 | 日韩欧美一区二区三区免费看 | 四虎网站网址 | 国产精品合集久久久久青苹果 | 日韩人成免费网站大片 | 天仙tv微福视频 | 波多野结衣在线免费观看 | 很很草 |