服務端Http請求Request和response原理解析篇(1)
什麼是servlet?
.Sun(oracle)公司制定的一種用來擴充套件Web伺服器功能的元件規範.
元件:在軟體開發行業,符合一定規範,實現部分功能,並且需要部署到容器中才能執行的軟體模組
容器:符合一定規範,提供元件執行環境的一個程式
什麼是HTTP協議?
HyperText Transfer Protocol
是由w3c(全球資訊網聯盟)制定的一種應用層協議,用來定義瀏覽器與web伺服器之間
如何通訊以及通訊的資料格式.
Request Message
GET /sayHi HTTP/1.1 請求行 :請求方式+請求資源路徑+協議版本
Host :localhost
Connection:Keep-Alive訊息頭:是一些鍵值對,一般由W3C定義.通訊雙方通過訊息頭傳遞一些特定的含義
User-Agent:Mozilla/4.0如:瀏覽器傳送User-Agent訊息頭告訴Web伺服器,瀏覽器型別和版本 ,大部分是自動生成,有時也需自己新增訊息頭
Accept:image/gif,image/jpeg
-----------blank line-------------------
(Empty body)實體內容,請求方式為POST時才有內容,即請求引數
Response Message
HTTP/1.1 200 OK狀態行(status line)協議型別+版本+狀態碼+狀態描述
Date:...
Server:Apache/2.0.45訊息頭(header):web伺服器返回一些訊息頭給瀏覽器,如Content-Type訊息頭,告訴瀏覽器伺服器返回的資料型別和字符集
Last-Modified:...
Content-Type:text/html
---------blank line-----------
<html><head><title>say實體內容:程式處理的結果
hi</title></head>
<body><h1>Hello World</h1>
</body></html>
如何控制通訊資料
當Web容器收到一個Http請求時,通訊資料由Web容器賦值封裝和提供
這些資訊被解釋成兩個物件,請求資料對應的HttpServletRequest和響應對應的HttpServletResponse型別物件
HttpServletRequest物件代表客戶端的請求,客戶端通過HTTP協議訪問伺服器時,請求中所有訊息都封裝在這個
物件中,通過這個物件的相關方法可以獲取請求資料
作用:-讀取和寫入HTTP請求資料
-取得和設定Cookies
-去的路徑資訊
-標識HTTP會話
-實現請求轉發
HttpServletResponse物件代表提供給客戶端的響應,封裝了HTTP的響應資料。通過這個物件可設定
狀態行、訊息頭、實體內容。
作用:
-設定對客戶端的輸出內容
-設定響應的狀態嗎
-設定瀏覽器解碼方式
-設定Cookies
-實現重定向
web工程的目錄結構:
appName
WEB-INFO
classes,web.xml