WEB測試需要了解的一點HTTP請求基礎知識
阿新 • • 發佈:2019-01-03
HTTP:超文字傳輸協議,一個基於請求響應模式的、無狀態的協議。
1、HTTP請求與響應的結構
GET / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)
Host: hypothetical.ora.com
Connection: Keep-Alive
HTTP/1.1 200 OK Date: Mon, 06 Dec 1999 20:54:26 GMT Server: Apache/1.3.6 (Unix) Last-Modified: Fri, 04 Oct 1996 14:06:11 GMT ETag: "2f5cd-964-381e1bd6" Accept-Ranges: bytes Content-length: 327 Connection: close Content-type: text/html <title>Sample Homepage</title>
2、客戶端請求方法
GET: 請求伺服器資源。
HEAD: 請求文件的一些資訊,而不需要文件本身。功能同GET,伺服器只響應狀態行和標題頭,不響應實體主體。
POST: 提供自身的一些資訊(一般是填寫表單)。客戶端傳送資料到伺服器資料處理程式(伺服器接受)
PUT: 用於提供一個新的或替代文件,儲存在伺服器上。請求實體主體應存放在所請求的伺服器URL中 (伺服器儲存)
DELETE: 刪除URI指定的伺服器資源
TRACE: 要求代理(proxies)在標題頭中宣告自己。
OPTIONS:客戶端想知道獲取資源還可以用其它什麼方法。
CONNECT:客戶端需要通過代理與HTTPS伺服器進行對話時使用。 請求通過代理訪問HTTPS伺服器
如:
CONNECT請求:
CONNECT www.onsale.com:443 HTTP/1.0
User-Agent: Mozilla/4.08 [en] (WinNT; U ;Nav)
CONNECT響應:
HTTP/1.0 200 Connection established
Proxy-agent: Apache/1.3.9 (Unix)
3、響應狀態碼
100-199 資訊
200-299 客戶端請求成功
300-399 客戶端請求重定向,需要進一步動作
400-499 客戶端請求不完全
500-599 伺服器錯誤
4、cookie的傳遞與管理
示例:
瀏覽器接收Cookie:GET /index.php HTTP/1.1 Host: learningweb <Other Header here> HTTP/1.1 200 OK Set-Cookie: PHPSESSID=df1fe9fd16c5a2027deb86cf07e37ef3; path=/ <Other Header here> GET /style.css HTTP/1.1 Cookie: PHPSESSID=df1fe9fd16c5a2027deb86cf07e37ef3 <Other Header here> POST /login.php HTTP/1.1 Cookie: PHPSESSID=df1fe9fd16c5a2027deb86cf07e37ef3 <Other Header here> …… username=******* password=******* HTTP/1.1 200 OK Set-Cookie: user=55555%742%7Cg7e1a205475abd1c021fb313ce147521; path=/ <Other Header here> GET /about/xygp.htm HTTP/1.1 Set-Cookie: PHPSESSID=df1fe9fd16c5a2027deb86cf07e37ef3; user=55555%742%7Cg7e1a205475abd1c021fb313ce147521; path=/ <Other Header here>
1. 從響應標題頭中提取所有的cookie。
2. 解析這些cookie的組成部分(名稱,值,路徑等等)。
3. 判定主機是否允許設定這些cookie。若允許,則把這些Cookie儲存在本地。
瀏覽器傳送Cookie:
1. 根據請求的URL和本地儲存cookie的屬性,判斷哪些Cookie能被髮送。
2. 對於多個cookie,判定傳送的順序。
3. 把需要傳送的Cookie加入到請求HTTP頭中一起傳送。
5、授權
BASIC
GET /sample.html HTTP/1.0
User-Agent: Mozilla/1.1N (Macintosh; I; 68K)
Accept: */*
Accept: image/gif
Accept: image/x-xbitmap Accept: image/jpeg
HTTP/1.0 401 Unauthorized
Date: Sat, 20-May-95 03:32:38 GMT
Server: NCSA/1.3
MIME-version: 1.0
Content-type: text/html
WWW-Authenticate: BASIC realm="System Administrator"
GET /sample.html HTTP/1.0
User-Agent: Mozilla/1.1N (Macintosh; I; 68K)
Accept: */*
Accept: image/gif
Accept: image/x-xbitmap
Accept: image/jpeg
Authorization: BASIC d2VibWFzdGVyOnpycW1hNHY=
HTTP/1.0 200 OK
Date: Sat, 20-May-95 03:25:12 GMT
Server: NCSA/1.3
MIME-version: 1.0
Content-type: text/html
Last-modified: Wednesday, 14-Mar-95 18:15:23 GMT
Content-length: 1029
[Entity-body data]