1. 程式人生 > >面試題-Java Web-網絡通信

面試題-Java Web-網絡通信

網絡通信 失敗 服務 客戶 封裝 試題 檢查 頭部 data-

1.HTTP響應的結構是怎麽樣的?

HTTP響應由三個部分組成:
狀態碼(Status Code):描述了響應的狀態。可以用來檢查是否成功的完成了請求。請求失敗的情況下,狀態碼可用來找出失敗的原因。如果Servlet沒有返回狀態碼,默認會返回成功的狀態碼HttpServletResponse.SC_OK。
HTTP頭部(HTTP Header):它們包含了更多關於響應的信息。比如:頭部可以指定認為響應過期的過期日期,或者是指定用來給用戶安全的傳輸實體內容的編碼格式。如何在Serlet中檢索HTTP的頭部看這裏。
主體(Body):它包含了響應的內容。它可以包含HTML代碼,圖片,等等。主體是由傳輸在HTTP消息中緊跟在頭部後面的數據字節組成的。

2.什麽是cookie?session和cookie有什麽區別?

cookie是Web服務器發送給瀏覽器的一塊信息。瀏覽器會在本地文件中給每一個Web服務器存儲cookie。以後瀏覽器在給特定的Web服務器發請求的時候,同時會發送所有為該服務器存儲的cookie。下面列出了session和cookie的區別:
無論客戶端瀏覽器做怎麽樣的設置,session都應該能正常工作。客戶端可以選擇禁用cookie,但是,session仍然是能夠工作的,因為客戶端無法禁用服務端的session。
在存儲的數據量方面session和cookies也是不一樣的。session能夠存儲任意的Java對象,cookie只能存儲String類型的對象。

3.瀏覽器和Servlet通信使用的是什麽協議?

瀏覽器和Servlet通信使用的是HTTP協議。

4.什麽是HTTP隧道?

HTTP隧道是一種利用HTTP或者是HTTPS把多種網絡協議封裝起來進行通信的技術。因此,HTTP協議扮演了一個打通用於通信的網絡協議的管道的包裝器的角色。把其他協議的請求掩蓋成HTTP的請求就是HTTP隧道。

5.sendRedirect()和forward()方法有什麽區別?

sendRedirect()方法會創建一個新的請求,而forward()方法只是把請求轉發到一個新的目標上。重定向(redirect)以後,之前請求作用域範圍以內的對象就失效了,因為會產生一個新的請求,而轉發(forwarding)以後,之前請求作用域範圍以內的對象還是能訪問的。一般認為sendRedirect()比forward()要慢。

6.什麽是URL編碼和URL解碼?

URL編碼是負責把URL裏面的空格和其他的特殊字符替換成對應的十六進制表示,反之就是解碼。

面試題-Java Web-網絡通信