Java 的GET 和 POST请求的本质区别是什么

小编 304

Java的GET和POST请求的本质区别是:1.作用不同;2.用户可见性不同;3.安全性不同;4.数据大小限制不同;5.保留和收藏性不同。作用不同在于,GET是从服务器上获取数据,而POST请求是向服务器传送数据。

1.作用不同

GET是从服务器上获取数据,GET请求返回request–URI所指出的任意信息;而POST请求是向服务器传送数据,用来发送电子邮件、新闻或发送能由交互用户填写的表格。

对于GET方式,服务器端用Request.QueryString获取变量的值;对于POST方式,服务器端用Request.Form获取提交的数据。

2.用户可见性不同

GET是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应。也就是说GET传输数据参数会显示在URL上,用户可以看到。

POST请求是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址,用户看不到这个过程。

3.安全性不同

由于使用GET时,参数会显示在地址栏上,因此安全性比POST低一些。所以,如果数据是中文数据而且是非敏感数据,一般可以使用GET;但如果用户输入的数据,不是中文字符而且包含敏感数据,那么建议使用POST更安全。

4.数据大小限制不同

特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其真正的限制取决于操作系统的支持。因此对于GET提交时,传输数据就会受到URL长度的限制。

POST由于不是通过URL传值,理论上数据大小不受限。但实际各个WEB服务器会规定对POST提交数据大小进行限制,Apache、IIS6都有各自的配置。因此,对于POST请求而言,真正影响到数据大小的是服务器处理程序的能力。

5.保留和收藏性不同

GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

GET请求可以被收藏为书签,因为参数就是url中;但POST不能,因为它的参数不在url中。

延伸阅读

http协议的请求方式有哪些

http即超文本传输协议,是一种实现客户端和服务器之间通信的响应协议,它是用作客户端和服务器之间的请求。http协议的请求方式主要有以下八种:

1.get请求:对应select操作,主要用来获取数据的,只是用来查询数据,不对服务器的数据做任何的修改、新增、删除等操作。

2.post请求:数据发送到服务器以创建或更新资源,侧重于更新数据,对应update操作。post请求的请求参数都是请求body中。

3.put请求:传输文件,就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存在请求URI指定的位置,存在安全问题,故一般不用。

4.delete请求:用来删除指定的资源,它会删除URI给出的目标资源的所有当前内容。

5.options请求:询问支持的方法,客户端询问服务器可以提交哪些请求方法。

6.head请求:与get方法相同,但没有响应体,仅传输状态行和标题部分。这对于恢复相应头部编写的元数据非常有用,而无需传输整个内容。

7.connect请求:要求用隧道协议连接代理,实现用隧道协议进行TCP通信。

8.trace请求:追踪路径,让Web服务器端将之前的请求通信还给客户端的方法。

回复

我来回复
  • 暂无回复内容

站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部