GET和POST请求的本质区别是:1、作用不同;2、用户可见性不同;3、安全性不同;4、数据大小限制不同;5、保留和收藏性不同。作用不同在于,GET是从服务器上获取数据,而POST请求是向服务器传送数据。
一、作用不同
GET是从服务器上获取数据,GET请求返回request–URI所指出的任意信息;而POST请求是向服务器传送数据,用来发送电子邮件、新闻或发送能由交互用户填写的表格。
对于GET方式,服务器端用Request.QueryString获取变量的值;对于POST方式,服务器端用Request.Form获取提交的数据。
二、用户可见性不同
GET是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应。也就是说GET传输数据参数会显示在URL上,用户可以看到。
POST请求是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址,用户看不到这个过程。
三、安全性不同
由于使用GET时,参数会显示在地址栏上,因此安全性比POST低一些。所以,如果数据是中文数据而且是非敏感数据,一般可以使用GET;但如果用户输入的数据,不是中文字符而且包含敏感数据,那么建议使用POST更安全。
四、数据大小限制不同
特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其真正的限制取决于操作系统的支持。因此对于GET提交时,传输数据就会受到URL长度的限制。
POST由于不是通过URL传值,理论上数据大小不受限。但实际各个WEB服务器会规定对POST提交数据大小进行限制,Apache、IIS6都有各自的配置。因此,对于POST请求而言,真正影响到数据大小的是服务器处理程序的能力。
五、保留和收藏性不同
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服务器端将之前的请求通信还给客户端的方法。
文章标题:GET和POST请求的本质区别是什么,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/51934