web相關的一些基礎概念!
1、request
客戶端的請求資訊:HTTP協議頭資訊、cookie、請求引數等。
2、response
用於服務端響應客戶端請求,返回資訊
3、pageContext
頁面的上下文
4、session
客戶端與服務端之間的會話
5、application
用於獲取服務端應用生命週期的資訊
6、out
用於服務端傳輸內容到客戶端的輸出流
7、config
初始化時,jsp引擎向jsp頁面傳遞的資訊
8、page
指向jsp頁面本身
9、exception
頁面發生異常,產生的異常物件
二、jsp的4種作用域
1、page 當前頁面作用域
相當於Java關鍵字this。在這個作用域中存放的屬性值,只能在當前頁面中取出。
2、request 請求作用域
範圍是從請求建立到請求消亡這段時間,一個請求可以涉及多個頁面。<jsp:forward>和<jsp:include>跳轉到其它頁面。
3、session 會話作用域
範圍是一段客戶端和服務端持續連線的時間,使用者在會話有效期內多次請求所涉及的頁面。session會話器,伺服器為第一次建立連線的客戶端分配一段有效期內的屬性記憶體空間。
4、application 全域性作用域
範圍是伺服器web應用啟動到停止,整個web應用中所有請求所涉及的頁面。當伺服器開啟時,會建立一個公共記憶體區域,任何客戶端都可以在這個公共記憶體區域存取值。
三、session和cookie有什麼區別?
瀏覽器和伺服器互動,一般是通過http協議互動的,http協議是無狀態的,瀏覽器與伺服器互動完資料,連線就會關閉,每一次資料互動都要重新建立連線。為了確保會話中的身份,可以通過建立session和cookie進行標識。
二者區別:
1、session是在伺服器端記錄資訊,key-value型別的物件,資料大小一般沒有限制
2、cookie是在瀏覽器端記錄資訊,一段文字,單個不超過4KB,最多20個cookie
3、大量使用者會話服務端儲存大量session對伺服器資源消耗較大;資訊儲存在cookie中緩解了伺服器儲存資訊的壓力。
4、一般實際使用中,關鍵資訊存在session中,其它資訊加密儲存在cookie中。
四、客戶端禁止cookie,session還能用嗎
可以繼續使用,通過URL重寫,把sessionid作為引數追加到URL中,後續的瀏覽器和伺服器互動中攜帶sessionid引數。
五、HTTP響應碼301和302代表的是什麼?有什麼區別?
1、301表示被請求URL永久轉移到新的URL;302表示被請求URL臨時轉移到新的URL。
2、301搜尋引擎會搜尋新的URL頁面內容;302可能會同時搜尋舊URL和新URL的頁面內容。
六、forward和redirect的區別?
1、forward--直接請求轉發
redirect--間接請求轉發
2、位址列:
forward為伺服器的直接跳轉,客戶端瀏覽器並不知情,位址列內容不變(伺服器內部的動作)
redirect為客戶端根據URL地址重新向伺服器請求,位址列改變
資料共享:
forward共享瀏覽器傳來的request
redirect全新的request
運用的地方:
forward使用者登入後根據角色跳轉頁面
redirect使用者登出後跳轉主頁或其他頁面
效率:
forward比redirect少一次伺服器請求,效率高一些。
七、tcp和udp的區別?
1、tcp傳輸控制協議,流模式傳輸,udp使用者資料報協議。
2、tcp面向連線,udp不需要建立連線。
3、tcp只能一對一傳輸,udp隨便傳。
4、tcp對網路要求較高,tcp保證資料的正確性,udp是資料報的形式,不保證資料的正確性
5、tcp適合網路負擔不大、資料的正確性要求較高的場景,udp適合網路負擔重,資料的正確性要求不高的場