1. 程式人生 > >HTTP協議之請求協議

HTTP協議之請求協議

版本 webkit live 直接 請求方法 o-c 頭信息 encoding url編碼

一. 請求協議格式:

請求首行; //請求方式 請求路徑 協議和版本,例如:GET /index.html HTTP/1.1
請求頭信息; //請求頭名稱:請求頭內容,即為key:value 格式,例如:Host:localhost
空行; //用來與請求體分隔開
請求體; //GET沒有請求體,只有POST有請求體

二. GET請求

  1. HTTP默認請求方法為GET請求
    • 沒有請求體
    • 數據必須在1K之內
    • GET數據會暴露在瀏覽器的地址欄中
  2. GET請求的常見操作
    1. 瀏覽器在地址欄中直接給出URL,那麽一定是GET請求
    2. 點擊頁面上的超鏈接也一定是GET請求
    3. 提交表單時,表單默認使用GET請求,但可設置為POST請求
  3. 舉例如下

    GET 127.0.0.1:8090/login  HTTP/1.1 <!--GET請求,請求服務器路徑為  127.0.0.1:8090/login ,協議為1.1-->
    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    <!--當前客戶端可以接收的文檔類型 q為權重 越大會更傾向於前面-->
    Accept-Encoding:gzip, deflate, sdch <!--支持的壓縮格式-->
    Accept-Language:zh-CN,zh;q=0.8 <!--當前客戶端支持的語言-->
    Cache-Control:no-cache Connection:keep-alive <!--客戶端支持的鏈接方式,保持一段時間鏈接,默認為3000ms--> Cookie:csrftoken=z5H43ZwARx7AIJ82OEizBOWbsAQA2LPk Host:127.0.0.1:8090 <!--請求的主機名為localhost--> Pragma:no-cache User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36 <!--與瀏覽器和OS相關的信息-->
    <!--以下為請求體--> Name login/ requests?737B transferred?Finish: 5ms?DOMContentLoaded: 14ms?Load: 14ms

三. POST請求

  1. 常見操作
    1. 數據不會出現在地址欄中
    2. 數據上限沒有大小
    3. 有請求體
    4. 請求體如果存在中文,會使用URL編碼
  2. 舉例如下

    Request Headers
    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Encoding:gzip, deflate
    Accept-Language:zh-CN,zh;q=0.8
    Cache-Control:no-cache
    Connection:keep-alive
    Content-Length:13   <!--請求體的長度,這裏表示13個字節-->
    Content-Type:application/x-www-form-urlencoded <!--表單的數據類型-->
    Cookie:csrftoken=z5H43ZwARx7AIJ82OEizBOWbsAQA2LPk
    Host:127.0.0.1:8090
    Origin:http://127.0.0.1:8090
    Pragma:no-cache
    Referer:http://127.0.0.1:8090/login/ 
    <!--請求來自哪個頁面,例如你在百度上點擊鏈接到了這裏,那麽Referer:http://www.baidu.com;-->
    <!--如果你是在瀏覽器的地址欄中直接輸入的地址,那麽就沒有Referer這個請求頭了;-->
    Upgrade-Insecure-Requests:1
    User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) 
               AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36
    
    Form Data
    username:yuan
  3. Referer
    請求頭是比較有用的一個請求頭,它可以用來做統計工作,也可以用來做防盜鏈.

HTTP協議之請求協議