GET 和 POST 何时使用

GET 和 POST 是使用 Servlet 和 JSP 时最常用的2种请求参数,那么如何使用,何时使用就是我们必须要弄清楚的

GET

向服务器取得指定的数据,在发出GET 请求时,必须要告诉服务器请求的资源URL,以及一些Header信息,请求参数通常是用户发送给服务器的必要信息,通常利用窗口进行发送,服务器必须要有这些信息才可以进一步针对用户的请求作出正确的响应,请求参数是在 URL 之后 跟随一个 ? 然后是请求参数 名称和请求参数值 name = value,如果有多个请求参数,那么以字符 & 连接,如下百度搜索Java关键字:
https://www.baidu.com/s?wd=java
GET 请求可以发送的请求参数长度是有限的128个字符,对于大量的数据并不适合使用GET 方式来进行请求

POST

在请求时发布 POST 信息给服务器,对于大量或是负责的信息发送,如文件上传,都会采用POST来进行发送,POST 是将 请企参数转移到 信息体重,由于信息体的内容程度不受限制,所以大量的数据发送都会采用POST的方法,由于请求参数在信息体重,所以我们在地址栏中是看不到请求参数的,这样对于一些敏感的信息,可以得到很好的保护。

如何选用 POST 和 GET

了解上面 GET 和 POST 的基本介绍之后,我们介绍何时选用GET 何时选用 POST

  • 功能上看

    • GET 请求跟随在 URL 之后的请求参数程度是有限的,过长的请求参数,或者是文件上传之类的大量数据,就不适合使用GET 请求
    • GET 请求的参数是不安全的,一些敏感类的或是对安全性有考虑的请求参数如 账号,用户名,密码等,不应该使用GET
    • POST 请求的参数不会出现在地址栏,所以我们无法加入浏览器的书签,如果有些页面是根据请求参数来作为不同的画面呈现,而我们需要让用户设定书签,方便以后使用书签来浏览,则应该使用GET
    • 有些浏览器根据网址来 cache 数据,如果网址是相同的URL,则会从浏览器中取出数据,而不是真正发送请求到服务器上查询最新数据,如果不需要服务器状态发生改变,我们仍从 cache 中取得旧数据,则可以使用 POST,如果这时候使用GET ,则可以在网址上加上时间戳,让每次GET 请求的网址都是不同的
  • 等幂操作

    • 非功能上考虑,HTTP 在设计时区分GET 和 POST 的目的之一,就是按请求是否为等幂操作来决定使用,什么是等幂操作,就是看请求的操作是否改变服务器的状态,就是同一个操作重复多次,服务器是否响应同样的操作
    • GET 请求应该用于等幂操作,GET 请求时纯粹取得资源,不会改变服务器上的数据或是状态,GET 的请求参数,知识用来告知服务器,根据请求参数来标识出要响应的内容,同样的GET 请求使用相同的参数重复请求,都应该得到相同的响应
    • POST请求用于非等幂的操作,POST 请求发送的数据,可能会影响服务器上的数据或状态,例如增,删,改,查数据库的内容,或是在服务器上保存文件,根据请求是否改变服务器的状态,来确定是否采用POST请求

在 form 表单的 method属性中我们要指定请求类型如果不指定,默认使用 GET

<form method = "get" action = "*.do">
....
</form> 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值