POST和GET请求区别

1. 请求长度的限制

在HTTP协议中,从未规定GET/POST的请求长度限制,对于GET,对url的限制来源于浏览器或web服务器,浏览器和服务器限制了url的长度。因此,在使用GET请求时,传输数据会受到URL长度的限制。对于POST,由于没有url传值,理论上是不会受到限制的,但是实际上各个服务器会对POST提交的数据大小进行限制,Apache、IIS都有各自的配置。如果支持IE,则最大长度为2083byte,若只支持Chrome,则最大长度 8182byte。

2. 安全性的区别

POST的安全性比GET的高。这里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到的安全仅仅是不会修改服务器的数据。比如,在进行登录操作,通过GET请求,用户名和密码都会暴露在url上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。而对于POST方式,数据通过Request Body传递,除此之外,GET请求提交的数据还可能会造成CSRF攻击。

3. 缓存方面的区别

GET请求类似于查找的过程,用户获取数据,可以不用每次都与数据库连接,所以可以使用缓存。POST不同,POST做的一般是修改和删除的工作,所以必须与数据库交互,所以不能使用缓存。因此GET请求适合于请求缓存。

4. 获取数据的区别

GET是从服务器上获取数据,POST是向服务器传送数据。对于GET方式,服务器用Request.QueryString获取变量的值,对于POST方式,服务器用Request.Form获取提交的数据。

以下是搜集的GET与POST的主要区别:

  • GET在浏览器回退时是无害的,而POST会再次提交请求。
  • GET产生的URL地址可以被Bookmark,而POST不可以。
  • GET请求会被浏览器主动cache,而POST不会,除非手动设置。
  • GET请求只能进行url编码,而POST支持多种编码方式。
  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
  • GET请求在URL中传送的参数是有长度限制的,而POST么有(原因是浏览器和服务器的限制)。
  • GET产生一个TCP数据包;POST产生两个TCP数据包(Firefox除外)。
  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
  • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
  • GET参数通过URL传递,POST放在Request body中。

原文地址:https://www.cnblogs.com/princess-knight/p/9293332.html

时间: 2024-11-06 11:06:15

POST和GET请求区别的相关文章

Http中Get/Post请求区别

Http中Get/Post请求区别 (1)get是从服务器上获取数据,post是向服务器传送数据. (1)   在客户端,Get方式在通过URL提交数据,数据在URL中可以看到:POST方式,数据放置在HTML HEADER内提交. (2) 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据. (2)   GET方式提交的数据最多只能有1024字节,而POST则没有此限制. (3)   安全性问题.正如

GET请求和POST请求区别

GET请求和POST请求区别 1.GET被强制服务器支持 GET通常用于请求服务器发送某个资源.在HTTP/1.1中,要求服务器实现此方法;POST请求方法起初是用来向服务器输入数据的.在HTTP/1.1中,POST方法是可选被实现的,没有明确规定要求服务器实现. 2.浏览器对URL的长度有限制,所以GET请求不能代替POST请求发送大量数据 RFC 2616 中明确对 uri 的长度并没有限制.不过虽然在RFC中并没有对uri的长度进行限制,但是各大浏览器厂家在实现的时候限制了URL的长度,可

HTTP的Get/Post请求区别

HTTP的Get/Post请求区别归纳 1. get是从服务器上获取数据,post是向服务器传送数据.g et 和 post只是一种传递数据的方式,get也可以把数据传到服务器,他们的本质都是发送请求和接收结果.只是组织格式和数据量上面有差别,http协议里面有介绍 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTI

Java Servlet(九):转发请求与重定向请求区别

转发: <% pageContext.setAttribute("pageContextAttr", "pageContextAttribute"); request.setAttribute("requestAttr", "requestAttribute"); session.setAttribute("sessionAttr", "sessionAttribute"); ap

angular 和jq 的AJAX的请求区别

最近项目中使用angular,结果发现后台没法获取参数,所以,稍微研究了一下两者在发送ajax时的区别. 注意angular和jquery的ajax请求是不同的. 在jquery中,官方文档解释contentType默认是 application/x-www-form-urlencoded; charset=UTF-8 contentType (default: 'application/x-www-form-urlencoded; charset=UTF-8') Type: String Wh

postman get请求和post请求区别

get请求:如果是get请求的话,直接在浏览器里输入就可以,只要在浏览器里面直接能请求到的,都是get请求. post请求:需要借助工具来发送 get和post区别 1.get使用url或Cookie传参,而post将数据放在body中 2.get的url会有长度上的限制,而post的数据则可以非常大 3.post比get安全,因为数据在地址栏上不可见 4.一般get请求用来获取数据,post请求用来发送数据 原文地址:https://www.cnblogs.com/cheneyboon/p/1

Web Api和Asp.Net mvc post请求区别

这是mvc的,mvc的post请求可以这样写参数,但是web api的不行.而且content_type:"application/json" 必须要写 下面这是web api的:content_type:"application/json" 必须要写

HTTP中get请求与post请求区别

传参时参数不同: get请求传递参数时,追加参数到url尾部 post请求传递参数时,追加在请求空白行位置 传参时大小不同: get请求,最大可以传递2k post请求,理论是没有任何限制的,php.ini文件限制文件上传大小为8M,程序中一般限定此值为2M 安全性不同: get请求安全性较低 post请求安全性较高 传参时数据类型不同: get请求只能传递字符类型数据 post请求可以传递字符类型数据,也可以传递二进制数据

WCF服务调用与普通HTTP请求区别

用WCF技术也有一段时间了,只知道引用服务地址后调用里面的方法就行了.之前也没有思考wcf里面的一些东西,现在才对WCF里的一些产生疑惑,比如,为什么会有代理类,为什么要有绑定,信道又是干啥用的. 今天结合传统的浏览器请求讲讲我个人的见解,至于WCF的基本技术点,什么信道,ChannelFactory,ClientBase之类的我就不管了. 由于技术有限,不对的地方欢迎批评. 那我们就传统浏览器的例子解释WCF里的一些技术名词(WCF服务以IIS为宿主环境) 信道 当们我在浏览器里输入地址,按下