GET提交与POST提交详解:

GET提交:

  • 以键值对的方式提交 key:value 通过键名获取键值
  • 安全性不高 因为请求数据加在地址(url)后面
  • 传输数据量小

以GET提交方式有哪些:

  • 网页中的超链接
  • form表单提交方式method为get

例子:

 <!---------第一种方法-->
    <a href="login.php?username=xiaozhong">点击</a>

    <!--------第二种方法-->
    <form action="login.php" method="get">
        用户名:<input type="text" name="username"> <br />
        密码:<input type="password" name="pass"> <br />
        <input type="submit" value="登录">
    </form>


服务器端获取传递过来的数据(php)
<?php
 //get方式获取传递的值 通过键名获取键值
$username=$_GET['username'];  
?>
<?php
//post方式提交的获取传递的值 通过键名获取键值
$username=$_POST['username'];
$pass=$POST['pass'];
?>

服务器端获取传递过来的数据(javaweb)
String pname = request.getParameter("username");
String pass = request.getParameter("pass");

POST提交:

  • 以键值对的方式提交 key:value 通过键名获取键值
  • 安全性高 因为请求数据封装在HTML头中
  • 传输数据量大

以POST提交方式:

  • form表单提交方式method为post

例子:

   <!--------以post方式提交-->
    <form action="login.php" method="post">
        用户名:<input type="text" name="username"> <br />
        密码:<input type="password" name="pass"> <br />
        <input type="submit" value="登录">
    </form>

服务器端获取传递过来的数据(php)
<?php
//post方式提交的获取传递的值 通过键名获取键值
$username=$_POST['username'];
$pass=$POST['pass'];
?>
服务器端获取传递过来的数据(javaweb)
String pname = request.getParameter("username");
String pass = request.getParameter("pass");

有两种提交数据的方式 那到底用哪种呢?

  • 具体需求具体分析
  • 如果该项目对安全性有较高的要求 就用post
  • 如果该表单需要上传文件时 就用post
  • 如果该项目对安全性没有较高的要求 就用get
  • 值得注意的是get提交有长度限制 因为地址(url)有长度限制