1. 程式人生 > >服務端Http請求Request和response原理解析篇(1)

服務端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