JAVA WEB知識總結
Servlet
Java Servlet實質上是一種小型的、與平臺無關的Java類,其生命週期由服務器的Servlet容器管理。當服務器接收到客戶端請求時,服務器調用並執行相應的Servlet動態生成響應內容,然後再由服務器返回給客戶端。
JSP
JSP技術是將Java代碼嵌入到HTML代碼中形成JSP文件。JSP技術依然是基於Servlet技術的,雖然JSP在編寫時與Servlet不一樣,但在執行時,JSP首先要由Servlet容器將JSP轉換成Servlet並編譯,然後才能執行。
Servlet和JSP的區別
- 編程方式不同
- 編譯時機不同
Servlet生命週期
同一個Servlet對象會同時爲多個客戶端服務,即多個客戶端共享一個Servlet對象,所以Servlet是線程不安全的。
- 初始化階段:調用init()方法。
- 響應客戶請求階段:調用Service()方法。
- 終止階段:調用destroy()方法。
Cookie和Session
- Session在服務器端,cookie在客戶端(瀏覽器)
- Session的運行依賴於Session id,Session id存儲在Cookie中。
會話跟蹤
- cookie
- url重寫
- 隱藏表單域
HTTP1.0 HTTP 1.1主要區別
- 長連接
- 節約帶寬
- HOST域
HTTP1.1 HTTP 2.0主要區別
- 多路複用
- 二進制分幀
- 數據壓縮
- 服務器推送
Get和Post的區別
- get把請求的數據放在url上,即HTTP協議頭上;post把數據放在HTTP的包體內(requrest body)。
- get提交的數據最大是2k;post理論上沒有限制。實際上IIS4中最大量爲80KB,IIS5中爲100KB。
- GET產生一個TCP數據包,POST產生兩個TCP數據包
- GET在瀏覽器回退時是無害的,POST會再次提交請求。
- GET產生的URL地址可以被Bookmark,而POST不可以。
- GET請求會被瀏覽器主動cache,而POST不會,除非手動設置。
- GET請求只能進行url編碼,而POST支持多種編碼方式。
- GET請求參數會被完整保留在瀏覽器歷史記錄裏,而POST中的參數不會被保留。
- GET只接受ASCII字符的參數的數據類型,而POST沒有限制
- POST安全性更高
- GET效率更高
- POST不是冪等
REST請求
POST、DELETE、GET、PUT對應增刪查改四種操作