1. 程式人生 > >HTTP協議(6)HTTP請求方法

HTTP協議(6)HTTP請求方法

對於HTTP請求報文,下面介紹一些需要重點了解的內容。
首先,在請求行中比較重要的是請求方法。請求方法用於客戶端向服務端傳送資料,主要有Get和Post兩種方法。
Get方法通過URL向伺服器傳送資料,所以使用Get方法傳遞的資料會顯示在瀏覽器位址列中。由於瀏覽器對URL的長度會有限制,所以Get方法通常用於向伺服器傳送少量資料。比如請求頭“GET index.php?id=1 HTTP/1.1”,表示客戶端請求訪問伺服器的index.php頁面,並用Get方法向伺服器傳遞資料“id=1”,id是在伺服器端事先定義好的一個引數,數值1就是客戶端所傳送的資料。如果要同時傳遞多個引數,引數之間以&分隔,如id=1&name=admin。
Post方法將要傳送的資料放在HTTP請求報文的正文中,所以傳遞的資料不會顯示在瀏覽器位址列中。可以用於向伺服器傳送大量資料,如使用者登入、上傳檔案、提交留言等都會使用Post方法。典型的Post請求報文如下圖所示。
HTTP協議(6)HTTP請求方法

例題1 BugKu web基礎$_GET
點開連結之後,直接給出了程式碼,用get方法接收what引數的值,只要what的值為flag,那麼就可以得到flag。

$what=$_GET['what'];
 echo $what;
 if($what=='flag')
 echo 'flag{****}';

直接通過位址列向服務端傳送資料即可。
HTTP協議(6)HTTP請求方法

例題2 BugKu Web基礎$_POST
與上一題類似,用post方法接收what引數的值。

$what=$_POST['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';

這裡就涉及到如何通過post方法向服務端傳送資料。推薦在firefox瀏覽器中安裝hackbar外掛,通過設定項中的“附加元件”搜尋並安裝即可。
安裝完成後,通過檢視元素或F12都可以調出hackbar。然後載入連結,併發送post資料即可。
HTTP協議(6)HTTP請求方法