-
http 響應碼 301 和 302 代表的是什麼?有什麼區別?
301,302 都是HTTP狀態的編碼,都代表着某個URL發生了轉移
301 redirect: 301 代表永久性轉移(Permanently Moved)。
302 redirect: 302 代表暫時性轉移(Temporarily Moved )。 -
forward 和 redirect 的區別?
Forward:客戶端和瀏覽器只發出一次請求,Servlet、HTML、JSP或其它信息資源,由第二個信息資源響應該請求,在請求對象request中,保存的對象對於每個信息資源是共享的。
Redirect:實際是兩次HTTP請求,服務器端在響應第一次請求的時候,讓瀏覽器再向另外一個URL發出請求,從而達到轉發的目的。 -
簡述 tcp 和 udp的區別?
1、TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發送數據之前不需要建立連接
2、TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重複,且按序到達;UDP盡最大努力交付,即不保證可靠交付
Tcp通過校驗和,重傳控制,序號標識,滑動窗口、確認應答實現可靠傳輸。如丟包時的重發控制,還可以對次序亂掉的分包進行順序控制。
3、UDP具有較好的實時性,工作效率比TCP高,適用於對高速傳輸和實時性有較高的通信或廣播通信。
4.每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信
5、TCP對系統資源要求較多,UDP對系統資源要求較少。 -
tcp 爲什麼要三次握手,兩次不行嗎?爲什麼?
防止已失效的連接請求又傳送到服務器端,因而產生錯誤 -
說一下 tcp 粘包是怎麼產生的?
TCP粘包是指發送方發送的若干包數據到接收方接收時粘成一包,從接收緩衝區看,後一包數據的頭緊接着前一包數據的尾。
1)發送方原因
我們知道,TCP默認會使用Nagle算法。而Nagle算法主要做兩件事:1)只有上一個分組得到確認,纔會發送下一個分組;2)收集多個小分組,在一個確認到來時一起發送。
所以,正是Nagle算法造成了發送方有可能造成粘包現象。
2)接收方原因
TCP接收到分組時,並不會立刻送至應用層處理,或者說,應用層並不一定會立即處理;實際上,TCP將收到的分組保存至接收緩存裏,然後應用程序主動從緩存裏讀收到的分組。這樣一來,如果TCP接收分組的速度大於應用程序讀分組的速度,多個包就會被存至緩存,應用程序讀時,就會讀到多個首尾相接粘到一起的包。 -
OSI 的七層模型都有哪些?
應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層 -
get 和 post 請求有哪些區別?
(1) 在客戶端,Get方式在通過URL提交數據,數據在URL中可以看到;POST方式,數據放置在HTML HEADER內提交。
(2) GET方式提交的數據最多只能有1024字節,而POST則沒有此限制。
(3) 安全性問題。使用 Get的時候,參數會顯示在地址欄上,而 Post不會。所以,如果這些數據是中文數據而且是非敏感數據,那麼使用 get;如果用戶輸入的數據不是中文字符而且包含敏感數據,那麼還是使用 post爲好。
(4) 安全的和冪等的 -
如何實現跨域?
1).圖片ping或script標籤跨域
2).JSONP跨域
3).CORS
4).window.name+iframe
5).window.postMessage()
6).修改document.domain跨子域
7).WebSocket
8).代理 -
說一下 JSONP 實現原理?
跨域是協議,端口,域名(以上任意一個不同都算是跨域)
首先在客戶端註冊一個callback,然後把callback的名字傳給服務器。此時,服務器先生成json數據,然後以javascript語法的方式,生成function,function名字就是傳遞上來I帶參數jsonp。最後將json數據直接以入參的方式,放置function中,這樣就生成js語法的文檔,返回給客戶端。客戶端瀏覽器,解析script變遷,並執行返回javascript文檔,此時數據作爲參數,傳入了客戶端預先定義好的callback函數裏。簡單的說,就是利用script標籤沒有跨域限制的“漏洞”來達到與第三方通訊的目的。
java面試---網絡
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.