1. 程式人生 > >02-撩課JavaEE-Http請求與響應

02-撩課JavaEE-Http請求與響應

一、什麼是協議

約束雙方規範的一個準則

二、什麼是HTTP協議

HTTP,超文字傳輸協議(HyperText Transfer Protocol)

是網際網路上應用最為廣泛的一種網路協議

所有的WWW檔案都必須遵守這個標準

設計HTTP最初的目的是為了提供一種釋出和接收HTML頁面的方法

約束請求與響應的歸規則

三、HTTP組成部分

- 請求
- 響應
- 請求與響應都是成對存在的

四、請求的傳送方式

  • 通過瀏覽器的位址列
  • 通過html當中的form表單
  • 通過a連結的href
  • src屬性
五、一個完整的請求包括:請求行、請求頭、請求體

請求行
請求行以一個方法符號開頭,以空格分開,後面跟著請求的URI和協議的版本
其中 Method表示請求方法;
Request-URI是一個統一資源識別符號;
HTTP-Version表示請求的HTTP協議版本;

請求方式:POST、GET

請求的資源:/Myxq/login.html?username=myxq&pwd=1234

協議版本:
HTTP/1.0,傳送請求,建立一次連線,獲得一個web資源,連線斷開
HTTP/1.1,傳送請求,建立一次連線,獲得多個web資源,保持連線。

請求頭
請求頭是客戶端傳送給伺服器端的一些資訊
使用鍵值對錶示key:value

常見請求頭
>`Referer`:瀏覽器通知伺服器,當前請求來自何處。
如果是直接訪問,則不會有這個頭。常用於:防盜鏈
`If-Modified-Since`:瀏覽器通知伺服器,本地快取的最後變更時間。
`Cookie`:用於存放瀏覽器快取的cookie資訊。
`User-Agent`:瀏覽器通知伺服器,客戶端瀏覽器與作業系統相關資訊
`Connection`:保持連線狀態。Keep-Alive 連線中,close 已關閉
`Host`:請求的伺服器主機名
`Content-Length`:請求體的長度
`Content-Type`:如果是POST請求,會有這個頭,預設值為`application/x-www-form-urlencoded`,表示請求體內容使用url編碼
`Accept`:瀏覽器可支援的MIME型別。檔案型別的一種描述方式
`text/html` ,`html`檔案
`text/css`,`css`檔案
`text/javascript`,`js`檔案
`image`,所有圖片檔案
`Accept-Encoding`:瀏覽器通知伺服器,瀏覽器支援的資料壓縮格式。如:GZIP壓縮】
`Accept-Language`:瀏覽器通知伺服器,瀏覽器支援的語言
                   自動的把客戶端的資訊傳送給伺服器

請求體
當請求方式是post的時,請求體會有請求的引數
如果請求方式為get,那麼請求引數不會出現在請求體中,會拼接在url地址後面

六、一個完整的響應包括:響應行、響應頭、響應體

響應行
伺服器響應給客戶端瀏覽器的狀態碼
根據不同的狀態碼可以看出此次請求的結果如何

    Http協議狀態碼

    `200` :請求成功

    302 :請求重定向

    304 :請求資源沒有改變,訪問本地快取。

    404 :請求資源不存在。通常是使用者路徑編寫錯誤,也可能是伺服器資源已刪除。

    500 :伺服器內部錯誤。通常程式拋異常。

    其它狀態碼

       成功 

               200  OK 

               201  已建立 

               202  接收 

               203  非認證資訊 

               204  無內容 

               205  重置內容 

               206  部分內容 

      重定向

               300  多路選擇 

               301  永久轉移 

               302  暫時轉移 

               303  參見其它 

               304  未修改(`Not Modified`) 

               305  使用代理 

        客戶方錯誤 

               400  錯誤請求(`Bad Request`) 

               401  未認證 

               402  需要付費 

               403  禁止(`Forbidden`) 

               404  未找到(`Not Found`) 

               405  方法不允許 

               406  不接受 

               407  需要代理認證 

               408  請求超時 

               409  衝突 

               410  失敗 

               411  需要長度 

               412  條件失敗 

               413  請求實體太大 

               414  請求URI太長 

               415  不支援媒體型別 

        伺服器錯誤 

               500  伺服器內部錯誤 

               501  未實現(`Not Implemented`) 

               502  閘道器失敗 

               504  閘道器超時 

響應頭
伺服器端將資訊以鍵值對的形式返回給客戶端

常見請求頭
`Location`:指定響應的路徑,需要與狀態碼302配合使用,完成跳轉

`Content-Type`:響應正文的型別(MIME型別)

`Content-Disposition`:通過瀏覽器以下載方式解析正文

`Set-Cookie`:伺服器向瀏覽器寫入cookie

`Content-Encoding`:伺服器使用的壓縮格式

`Content-length`:響應正文的長度

`Refresh`:定時重新整理

`Server`:伺服器名稱,預設值:`Apache-Coyote/1.1`。
         可以通過conf/server.xml配置進行修改

`Last-Modified`:伺服器通知瀏覽器,檔案的最後修改時間
                自動的把伺服器端的資訊傳給客戶端

響應體
響應體是伺服器回寫給客戶端的頁面正文
瀏覽器將正文載入到記憶體
然後解析渲染顯示頁面內容

8種請求型別

1.`OPTIONS`:返回伺服器針對特定資源所支援的HTTP請求方法,

也可以利用向web伺服器傳送‘*’的請求來測試伺服器的功能性

2.`HEAD`:請求指定的頁面資訊,並返回頭部資訊

3.`GET`:請求指定的頁面資訊,並返回實體主體

4.`POST`:向指定資源提交資料進行處理請求

5.`PUT`:向指定資源位置上傳其最新內容

6.`DELETE`:請求伺服器刪除Request-URL所標識的資源

7.`TRACE`:回顯伺服器收到的請求,主要用於測試或診斷

8.`CONNECT`:HTTP/1.1協議中預留給能夠將連線改為管道方式的代理伺服器。

常用兩種GET請求與POST請求方式區別

1.GET

GET 方法向頁面請求傳送引數

地址和引數資訊中間用 ? 字元分隔

http://www.itlike.com/hello?key1=value1&key2=value2

查詢字串會顯示在位址列的URL中,

不安全,請不要使用GET請求提交敏感資料

GET 方法有大小限制:請求字串中最多隻能有 1024 個字元

GET請求能夠被快取

GET請求會儲存在瀏覽器的瀏覽記錄中

可以新增書籤

編碼型別為application/x-www-form-urlencoded

只允許ASCII字元型別,不能用二進位制流

點選重新整理時,不會有反應

GET請求主要用以獲取資料

2.POST

POST 方法向頁面請求傳送引數

使用POST方法時,查詢字串在POST資訊中單獨存在,

和HTTP請求一起傳送到伺服器

編碼型別為:application/x-www-form-urlencoded or multipart/form-data. 

請為二進位制資料使用multipart編碼

沒有歷史記錄

引數型別沒有限制,可以是字串也可以是二進位制流

資料不會顯示在位址列中

也不會快取下來或儲存在瀏覽記錄中,所以看POST求情比GET請求安全

但也不是最安全的方式。如需要傳送敏感資料,請使用加密方式傳輸

查詢字串不會顯示在位址列中

Post傳輸的資料量大,可以達到2M,而Get方法由於受到URL長度限制,

只能傳遞大約1024位元組. 

Post就是為了將資料傳送到伺服器段,Get就是為了從伺服器段取得資料

博文全套 視訊講解 點選以下連結檢視
https://study.163.com/course/courseMain.htm?courseId=1005981003&share=2&shareId=1028240359