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请求报文如下图所示。
例题1 BugKu web基础$_GET
链接:http://123.206.87.240:8002/get/
点开链接之后,直接给出了代码,用get方法接收what参数的值,只要what的值为flag,那么就可以得到flag。
$what=$_GET['what']; echo $what; if($what=='flag') echo 'flag{****}';
直接通过地址栏向服务端发送数据即可。
例题2 BugKu Web基础$_POST
链接:http://123.206.87.240:8002/post/
与上一题类似,用post方法接收what参数的值。
$what=$_POST['what'];echo $what;if($what=='flag')echo 'flag{****}';
这里就涉及到如何通过post方法向服务端发送数据。推荐在firefox浏览器中安装hackbar插件,通过设置项中的"附加组件"搜索并安装即可。
安装完成后,通过查看元素或F12都可以调出hackbar。然后载入链接,并发送post数据即可。