1. 程式人生 > >get請求、post請求、響應報文

get請求、post請求、響應報文

GET /07_WEB_HTTP/index.html HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Accept-Language: zh-CN,en-US;q=0.5
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; InfoPath.3)
Accept-Encoding: gzip, deflate
Host: localhost:8080
Connection: Keep-Alive

GET請求沒有請求體,所以也沒有空行

GET請求報文結構
請求首行
請求頭

請求首行:

GET /07_WEB_HTTP/index.html?username=admin&password=123123 HTTP/1.1
請求方式 資源地址?查詢字串 協議名/協議版本

請求頭:

> 通過觀察請求頭是一個一個的鍵值對結構,有的是一個鍵對應一個值,有的是一個鍵對應多個值
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
允許的檔案型別:檔案型別使用的MIME值,*/* 代表任意型別

Accept-Language: zh-CN,en-US;q=0.5
允許的語言:zh-CN 簡體中  en-US 美國英語 ,主要用來告訴伺服器當前使用者所在的地區

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; InfoPath.3)
使用者系統資訊:

Accept-Encoding: gzip, deflate
允許的壓縮格式:

Host: localhost:8080
主機地址:

Connection: Keep-Alive
連線時間:Keep-Alive表示的是一個長連線,告訴伺服器等待瀏覽器將所有資源都載入完畢之後在斷開連線

=========================================

POST /07_WEB_HTTP/index.html HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Referer: http://localhost:8080/07_WEB_HTTP/form.html
Accept-Language: en-US,zh-CN;q=0.5
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; InfoPath.3)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 29
Connection: Keep-Alive
Cache-Control: no-cache

username=%E5%BC%A0%E4%B8%89&password=13123

請求首行

POST /07_WEB_HTTP/index.html HTTP/1.1
請求方式 資源地址 協議名/協議版本

請求頭

Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Referer: http://localhost:8080/07_WEB_HTTP/form.html
請求的來源:廣告計費   防止盜鏈

Accept-Language: en-US,zh-CN;q=0.5

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; InfoPath.3)

Content-Type: application/x-www-form-urlencoded
請求體的型別:application/x-www-form-urlencoded請求體中的內容將會使用URL編碼,
    將URL地址中的中文轉換為二進位制字元就叫做URL編碼
    URL編碼的過程
        文字 --> 二進位制編碼 --> 十六進位制

Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 29
請求體的長度:

Connection: Keep-Alive
Cache-Control: no-cache
是否使用快取:no-cache不使用快取

空行

作用分割請求首部和請求體

請求體

用來傳遞請求引數

get請求和post請求的區別

除了表單method屬性設定為post時,其餘情況都是get請求
get請求通過url地址傳送請引數,post請求通過請求體來發送請求引數
get請求沒有體,post請求有體
get請求傳送的請求引數可以通過位址列直接看到,而post請求不能看到,所以post請求稍微安全一些
url地址的字元限制為255個字元,所以不能通過get請求傳送大量的資訊
請求體的大小是沒有限制,所以我們可以通過post請求傳送任何資訊
一般情況下提交表單時都是用post請求

=======================================================

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"169-1444635567679"
Last-Modified: Mon, 12 Oct 2015 07:39:27 GMT
Content-Type: text/html
Content-Length: 169
Date: Mon, 12 Oct 2015 07:40:09 GMT

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>我是一個孤獨的網頁!!</h1>
</body>
</html>

響應首行

HTTP/1.1 200 OK
協議名/協議版本 響應狀態碼 響應狀態碼的描述
常見的響應狀態碼:

    200 響應成功 2開頭的都是成功相關的
    404 資源未找到 4開頭全都是瀏覽器端錯誤
    500 伺服器內部錯誤 5開頭的全都伺服器的錯
    302 請求的重定向 3開頭的都是重定向相關

響應頭

Server: Apache-Coyote/1.1
伺服器的版本: 

Accept-Ranges: bytes
允許資料的範圍:

ETag: W/"169-1444635567679"

Last-Modified: Mon, 12 Oct 2015 07:39:27 GMT
最後的修改時間:這個時間是格林威治標準時間

Content-Type: text/html;charset=utf-8
響應體內容型別:text/html表示的響應體中是一個html網頁 charset指的是網頁的編碼

Content-Length: 169
響應體的長度(網頁的大小)

Date: Mon, 12 Oct 2015 07:40:09 GMT
響應時間:格林威治標準時間

空行

用來分割響應首部和響應體

響應體

響應一般就是網頁內容,也就是說在瀏覽器視窗中顯示的內容就是報文中響應體的內容
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>我是一個孤獨的網頁!!</h1>
</body>
</html>