当前位置:   article > 正文

POST请求

post请求

上行报文即信息

HTTP的请求是成对儿的,有request就有response。称之为“上行请求”和“下行响应”。不管是哪种请求,都会“报头”+“报文”的形式传输数据

一般上行请求的上行报文是空的,下行响应的下行报文是html的代码

报头:用来存放一些信息,比如客户端的信息,访问时间,cookie等等

比如我们访问baidu.com网站,然后就能得到相关请求的报头和报文

上行请求一般是没有报文的,下行报文一般都是html代码

使用GET请求的时候,所有的信息参数都在$_GET数组中,POST也是有一个$_POST数组来维护POST请求的信息

POST请求提交表单

url中输入网址携带参数的请求都是GET请求,如果想要发送POST请求,需要借助表单来发起

例:在浏览器中发起POST请求

  1. <form action="01.php" method="post">
  2. <p>
  3. <input type="text" name="userName" placeholder="请输入用户名">
  4. </p>
  5. <p>
  6. <input type="password" name="password" placeholder="请输入密码">
  7. </p>
  8. <p>
  9. <input type="radio" name="sex" value="男">
  10. <input type="radio" name="sex" value="女">
  11. </p>
  12. <p>
  13. <input type="submit">
  14. </p>
  15. </form>

此时表单一旦提交了,页面会跳转到05.php,此时的url地址中并没有我们提交的信息(query string),数据都在HTTP的上行报文中

在.php中可以通过$_POST来获取这些参数

  1. <?php
  2. // 得到用户的数据
  3. $userName = $_POST["userName"];
  4. $password = $_POST["password"];
  5. $sex = $_POST["sex"];
  6. // 反馈结果
  7. echo "接收到的表单信息为:<br/>";
  8. echo "用户名:".$userName."<br/>";
  9. echo "密码:".$password."<br/>";
  10. echo "性别:".$sex."<br/>";
  11. ?>

POST请求的优缺点

优点:

  • 安全,URL不会暴露我们的信息,浏览器会保存我们的上下报文,一旦发送过请求后,立即就会销毁,任何人都无法通过读你报文来窃取你的信息
  • 传递的数据长!理论上POST请求可以发送无穷大的信息,所以,图片、文件的上传都是通过POST请求发送的

缺点:

  • POST请求不方便信息共享,如果我们需要分享一篇博客,想把url发送给朋友,如果使用post请求,参数则无法分享,因为url中无法携带任何的页面信息,仅仅只有url的实际地址

get和post的使用场景

  • 如果你的程序是通过用户输入查询检索的时候,一般用GET,便于分享;
  • 如果你的信息是一些比较敏感的,比如用户的注册名称,密码,身份证号等等一些敏感的信息,一定要使用post,这样安全。

总结:GET请求本意就是“得到”的意思,POST请求本意就是“发送”的意思。所以当你的目的是得到更多信息的时候,使用GET,比如我们要根据id查询某一条信息。如果你的目的是提交,发送,使用post。比如你要提交自己的信息(姓名,年龄,身高,体重...)

 

面试题

GET请求就是HTTP的request,POST请求就是HTTP的response。这样的说法正确吗?为什么?

这种说法是完全错误的,GET请求和POST请求都是上行的请求和下行响应的,也就是都是向服务器发送请求的(request),然后服务器进行对应的请求响应(response)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/418846
推荐阅读
相关标签
  

闽ICP备14008679号