计算机网络:POST请求

POST请求

上行报文即信息

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

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

报头: 用来存放一些信息,比如客户端的信息,访问时间,cookie等等
比如我们访问baidu.com网站,然后就能得到相关请求的报头和报文

在这里插入图片描述

  • 上行请求一般是没有报文的
  • 下行报文一般都是html代码
    使用GET请求的时候,所有的信息参数都在 G E T 数组中, P O S T 也是有一个 _GET数组中,POST也是有一个 GET数组中,POST也是有一个_POST数组来维护POST请求的信息

POST请求提交表单

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

<form action="01.php" method="post">
    <p>
        <input type="text" name="userName" placeholder="请输入用户名">
    </p>
    <p>
        <input type="password" name="password" placeholder="请输入密码">
    </p>
    <p>
        <input type="radio" name="sex" value="男"><input type="radio" name="sex" value="女"></p>
    <p>
        <input type="submit">
    </p>
</form>

此时表单一旦提交了,页面会跳转到05.php,此时的url地址中并没有我们提交的信息(query string),数据都在HTTP的上行报文中
在这里插入图片描述
在.php中可以通过$_POST来获取这些参数

<?php
    // 得到用户的数据
    $userName = $_POST["userName"];
    $password = $_POST["password"];
    $sex = $_POST["sex"];
 
    // 反馈结果
    echo "接收到的表单信息为:<br/>";
    echo "用户名:".$userName."<br/>";
    echo "密码:".$password."<br/>";
    echo "性别:".$sex."<br/>";
?>

在这里插入图片描述

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值