GET请求
请求方式一共有26种,但是最长用的就是get和post请求
URL即信息
我们看一个js的案例,案例是判断用户输入的数字是否是一个质数
<script> var num=parseInt(prompt("输入一个整数")); var count=0; for(var i=0;i<num; i++){ if(num%i==0){ count++; } } if(count==2){ console.log(num+"为质数") }else{ console.log(num+"不是质数") } </script>
此时的js代码,是通过prompt弹出弹出后,在本地进行计算然后返回的,中间没有任何的和服务器打交道的过程;
如果我们的代码是php代码怎么实现?
php的相关运算都是在服务器端进行的,此时我们要考虑一个问题,如何将要计算的数字带给服务器?
可以使用通过URL传递数据
GET请求其实就是通过URL来传递数据
http://127.0.0.1/01.php?name=小明&age=20&sex=男
一个标准的URL网址,在最后有一个query string部分,表示对页面的查询。使用?来表示这一部分,内容必须是k=v,多个参数使用&连接,此时01.php这个页面,将会收到这些数据。
PHP文件中,会把所有的query string数据都自动放到$_GET的数组中
<?php
print_r($_GET);
?>
此时可以看到,把url上携带的参数以数组的形式输出
我们可以通过数组的枚举来获得某一个参数
<?php print_r($_GET); echo "<br/>"; echo $_GET['name']; echo "<br/>"; echo $_GET['age']; echo "<br/>"; echo $_GET['sex']; ?>
我们建立一个php的页面实现url参数来判断当前的数字是否是一个质数
<?php $num=$_GET['num']; $count=0; for($i=0;$i<$num;$i++){ if($num%$i==0){ $count++; } } if($count==2){ echo $num."是质数"; }else{ echo $num."不是质数"; } ?>
我们把这种“网址即数据”的形式叫做GET请求。为什么叫GET?因为我们传递给服务器的参数,一般多是服务器发送特定的格式参数,我们要通过GET来获取数据
GET请求提交的表单
制作一个通过get请求得到表单信息
1.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form action="1.php" method="GET" > <h3>请选择学号</h3> <select name="id"> <option value="10001">10001</option> <option value="10002">10002</option> <option value="10003">10003</option> <option value="10004">10004</option> </select> <input type="submit" value="查询"> </form> </body> </html>
1.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <?php // 用数组来模拟数据库 $arr = array( "10001" => array("name"=>"小明","age"=>22,"sex"=>"男",), "10002" => array("name"=>"小红","age"=>21,"sex"=>"女",), "10003" => array("name"=>"小刚","age"=>26,"sex"=>"男",), "10004" => array("name"=>"小强","age"=>28,"sex"=>"女",), ); // 得到通过学号查询的内容 $id = $_GET["id"]; ?> <h1>学生管理系统</h1> <ul> <li>学号:<?php echo $id;?></li> <li>姓名:<?php echo $arr[$id]["name"];?></li> <li>年龄:<?php echo $arr[$id]["age"];?></li> <li>性别:<?php echo $arr[$id]["sex"];?></li> </ul> </body> </html>
GET请求的优缺点
优点:
- 便于分享比如上面的学生信息,如果你想把这个地址分享给别人,比如学生号码为10001的学生数据
http://www.msbtest2/03.php?id=10001
- 网址即信息,其他人看到的就是这个学生的信息
缺点:
- 不保密你的信息,如果通过url的方式保持,关于浏览记录是不保密,你的姓名,手机号等等
- 能传递的信息不够长,因为信息如果是通过url方式传递的,所以信息不能太长,因为url的长度是有限制的,不同的浏览器有不同的限制