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
  • 网址即信息,其他人看到的就是这个学生的信息

缺点:

  1. 不保密你的信息,如果通过url的方式保持,关于浏览记录是不保密,你的姓名,手机号等等
  2. 能传递的信息不够长,因为信息如果是通过url方式传递的,所以信息不能太长,因为url的长度是有限制的,不同的浏览器有不同的限制
posted @ 2021-10-21 20:10  keyeking  阅读(504)  评论(0编辑  收藏  举报