1. 程式人生 > >Java當中的HTTP協議詳解

Java當中的HTTP協議詳解

HTTP協議

1. 什麼是協議

雙方在互動、通訊的時候,遵守的一種規範、規則。

2. HTTP協議

    針對網路上的客戶端與伺服器端在執行HTTP請求的時候,遵守的一種規範,其實就是規定了客戶端在訪問伺服器的時候,要帶上那些東西,伺服器端返回資料的時候,也要帶上什麼東西。

3. HTTP協議版本

1.1版本:

請求資料,伺服器返回後,將會斷開連線。

1.1版本:  

請求資料,伺服器返回後,連線還會保持著。除非伺服器|客戶端關掉,有一定時間限制,如果都空著這個連線,那麼後面會自己斷掉。

HTTP請求資料解釋

請求的資料裡面包含三個部分內容:請求行請求頭請求體

請求行:

POST /examples/servlets/servlet/RequestParamExample HTTP/1.1

POST : 請求方式 ,以post去提交資料

/examples/servlets/servlet/RequestParamExample

請求的地址路徑 , 就是要訪問哪個地方。

HTTP/1.1   協議版本

請求頭

ccept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*

Referer: http://localhost:8080/examples/servlets/servlet/RequestParamExample

Accept-Language: zh-CN

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

Host: localhost:8080

Content-Length: 31

Connection: Keep-Alive

Cache-Control: no-cache

Accept: 客戶端向伺服器端表示,我能支援什麼型別的資料。

Referer : 真正請求的地址路徑,全路徑

Accept-Language: 支援語言格式

User-Agent: 使用者代理 向伺服器表明,當前來訪的客戶端資訊。

Content-Type: 提交的資料型別。經過urlencoding編碼的form表單的資料

Accept-Encoding: gzip, deflate : 壓縮演算法 。

Host : 主機地址

Content-Length: 資料長度

Connection : Keep-Alive 保持連線

Cache-Control : 對快取的操作

請求體

傳送的資料呈現的是key=value ,如果存在多個數據,那麼使用 &

firstname=zhang&lastname=sansan

HTTP響應資料解析

響應的資料裡面包含三個部分:響應行響應頭響應體

響應行

HTTP/1.1 200 OK

協議版本  

狀態碼

    咱們這次互動到底是什麼樣結果的一個code.

    200 : 成功,正常處理,得到資料。

    403  : for bidden  拒絕

    404 : Not Found

    500 : 伺服器異常

響應頭

Server:  伺服器是哪一種型別。  Tomcat

Content-Type : 伺服器返回給客戶端你的內容型別

Content-Length : 返回的資料長度

Date : 通訊的日期,響應的時間  

Get和Post請求的區別

1.Post:

1. 資料是以流的方式寫過去,不會在位址列上面顯示。  現在一般提交資料到伺服器使用的都是POST

2. 以流的方式寫資料,所以資料沒有大小限制。

2.Get

1. 會在位址列後面拼接資料,所以有安全隱患。 一般從伺服器獲取資料,並且客戶端也不用提交上面資料的時候,可以使用GET

2. 能夠帶的資料有限, 1kb大小