HTTP特色:
一、遵循請求/響應模型:支持客戶端/服務器模式(一次響應,一次請求)
二、無鏈接:無鏈接的含義是限制每次鏈接只處理一個請求。服務器處理完客戶端的請求,並受到客戶的應答後,即斷開鏈接。
三、無狀態。http協議是無狀態協議。Http在處理事務上是沒有任何記憶能力,若是後續處理須要前面的信息,則前面的信息必須進行重傳才能進行使用,簡單的講就是,本次的操做,與上次沒有任何關係。java
由最上層至最下web
1.應用層 瀏覽器
2.表示層緩存
3.會話層服務器
4.傳輸層網絡
5.網絡層post
6.數據鏈路層url
7.物理層spa
Servlet的生命週期:生命週期包括加載(建立)程序,服務,終止(銷燬),卸載,五個部分。繼承
容器查早原則:
1.首先會查找徹底匹配,若是找不到則查找目錄匹配,若是還找不到在找拓展名匹配
2.若是一個請求能夠匹配多個目錄,容器會選擇最長的目錄匹配。
什麼是Servlet
Servlet是運行Web容器,按照其自身規範寫的java程序
Servlet運行的是.class文件。web服務器使用該class文件去處理瀏覽器請求,並將處理的結果返回給客戶端
Servlet必須調用Java-servlet Api,必須是對特定類或接口的繼承和實現。而且,它唏噓重寫特定的方法去處理客戶端請求。
應用上下文(ServletContext)
特色:web容器惟一性。
所有變量。
用於存取數據(設置屬性,setAttribute()&getAttribute())
信息共享。
轉地址。( ServletContext context = getServletContext();
RequestDispatcher rd = context.getRequestDispatcher("/servlet/ServletDemo5");//得 到請求轉發器
rd.forward(request, response); //執行轉發)
HTTP協議請求的組成部分:請求行、請求頭、消息報頭、請求正文
HTTP響應由三部分組成:狀態行、響應頭、響應正文
狀態行:HTTP版本 響應碼 響應描述
瀏覽器向web服務器發送http請求的方法:(默認狀況都是get方法)
用戶在網頁上點擊一個連接(永遠都是get方法)
用戶提交在網頁上填寫好的表單
用戶在瀏覽器地址欄輸入URL地址並回車
請求頭: getHeader(name) 返回指定的請頭的值
getHeaders(name) 返回一個Enumeration包含請求頭中的全部值
getHeadersName() 特定請求中接受到的全部請求頭的名稱。
setHeader("Refresh","time;URL=url");refresh頭不是http1.0或http1.1協議標準的組成部分,
是瀏覽器廠商的擴展功能,使用需考慮瀏覽器兼容性問題。
GET和post的區別:
提交的數據類型,
提交的數據長度,
提交數據可見性,
提交的數據緩存。
請求轉發與重定向的區別。
1.重定向是客戶端瀏覽器完成,而請求轉發是服務器完成。
2.採用重定向瀏覽器URL地址要改變,而請求轉發則不會。
3.重定向是兩次請求/響應,而請求轉發則只是一次請求/響應。
重定向主要用於不一樣服務器。請求轉發主要是針對Servlet。