讲讲GET 方式提交与POST 方式提交

在Web开发中,GET和POST是两种最常用的HTTP请求方法,它们在提交数据到服务器时有着不同的用法和特点。

GET请求

  • 用法:通常用于请求服务器发送资源。GET请求的参数会附加在URL之后,通过问号(?)分隔URL和传递的参数,参数之间用和号(&)分隔。
  • 特点
    • 由于参数直接暴露在URL中,所以不适合传输敏感信息。
    • 对参数的数据长度有限制,限制大小依赖于浏览器和服务器,但一般不超过2048个字符。
    • 可以被缓存、保存为书签、共享。

HTML表单示例(使用GET方法提交):

<form action="submitForm" method="get">
    姓名: <input type="text" name="name">
    <input type="submit" value="提交">
</form>

当用户填写此表单并提交时,如果输入的姓名为"张三",浏览器会向submitForm发送一个请求,URL可能看起来像这样:submitForm?name=张三

POST请求

  • 用法:通常用于向服务器提交要被处理的数据。POST请求的数据会包含在请求体中,不会暴露在URL里。
  • 特点
    • 可以传输大量数据,理论上没有限制。
    • 适合传输敏感或私密数据,因为数据不会显示在URL中。
    • 不会被缓存,也不会保存为书签。

HTML表单示例(使用POST方法提交):

<form action="submitForm" method="post">
    姓名: <input type="text" name="name">
    电子邮件: <input type="email" name="email">
    <input type="submit" value="提交">
</form>

用户提交这个表单时,数据将包含在HTTP请求的主体中发送到服务器,URL不会改变或包含任何表单数据。

Servlet示例

假设你有一个Servlet SubmitFormServlet,用来处理上述表单的提交。Servlet中可能包含如下代码:

// 处理GET请求
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String name = request.getParameter("name");
    // 处理请求...
}

// 处理POST请求
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String name = request.getParameter("name");
    String email = request.getParameter("email");
    // 处理请求...
}

在这个示例中,不论是GET请求还是POST请求,都可以通过request.getParameter("name")来获取用户提交的数据。不同之处在于,POST请求允许你安全地提交更多、更敏感的数据,而GET请求适合于请求数据或提交非敏感信息的场景。

用费曼学习法来讲解GET和POST的区别,

GET请求——就像是寄了一张明信片

想象一下,你要通过寄明信片给朋友来告诉他一些信息。你在明信片上写下你想说的话,比如你想访问某个地方(请求某个资源)。因为明信片是公开的,邮递员(互联网)和任何人(中间人)都可以看到上面的信息。

  • 特点
    1. 公开透明:就像明信片上的文字,GET请求的参数在URL里,任何人都看得见。
    2. 容量有限:明信片空间有限,GET请求的URL长度也有限。
    3. 方便快捷:明信片易于发送和分享,GET请求可以被保存为书签或分享给别人。

POST请求——就像是寄了一个私人信封

现在,假设你有更私人的话要说,你不想让其他人知道,这时你会选择把这些话写在信里,然后放进信封寄出。这样,除了收信人,没有人知道信的内容。

  • 特点
    1. 保密性好:就像信封里的信,POST请求的数据在请求体内,别人看不到。
    2. 内容更多:信封可以装更多的信纸,POST请求可以发送更多的数据。
    3. 私密安全:信封保护了信的内容不被看到,POST请求通过不在URL展示数据提高安全性。

举个栗子

假设你在网上订餐。

  • 使用GET请求就像是你在公共论坛上发帖说:“我今天要点一份披萨,送到123街。”大家都能看到你的帖子,知道你要点什么和送到哪里。

  • 使用POST请求就像是你直接私信给订餐服务:“嘿,我想要一份披萨,地址是123街。”只有订餐服务看到你的消息,更安全,别人不知道你的具体订单。

总结

  • GET就像寄明信片或在公共场合说话,适合一般信息的获取,方便但不够私密。
  • POST就像寄私人信封或私下说悄悄话,适合提交数据或敏感信息,安全但稍微复杂些。

通过这样简化的比喻,希望你对GET和POST请求有了更直观的理解!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值