对于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请求报文以下图所示。php
例题1 BugKu web基础$_GET
连接:http://123.206.87.240:8002/get/
点开连接以后,直接给出了代码,用get方法接收what参数的值,只要what的值为flag,那么就能够获得flag。web
$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数据便可。并发