标题 HTTP请求中POST与GET的区别
在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交。HTTP 定义了与服务器交互的不同方法,最常用的有4种,Put(增),Delete(删),Post(改),Get(查),即增删改查:1、本质区别:get用于查询信息(查),post用于插入信息(插);2、安全性:对于服务器讲,get是安全(不更改信息)、幂等(作用1次和n次效果相同); post不安全、不幂等; 对于客户端将,get参数直接暴露在URL, 不安全;post参数放消息体中,更安全;3、传送长度: get受 URL限制,传送数据量小; post传送数据量大,默认不受限制; 4、缓存机制、历史记录:get请求会被浏览器主动缓存,也会被保留在历史记录中,post都不可以;5、数据类型:get只允许ASCII码字符类型,post无限制;特点1. GET 是会被浏览器主动缓存的,如果下一次传输的数据相同,那么就会返回缓存中的内容,以求更快地展示数据。2. GET 方法的 URL 一般都具有长度限制,但是需要注意的是 HTTP 协议中并未规定 GET 请求的长度。这个长度限制主要是由浏览器和 Web 服务器所决定的,并且各个浏览器对长度的限制也各不相同。3. GET 方法只产生一个 TCP 数据包,浏览器会把请求头和请求数据一并发送出去,服务器响应 200 ok(返回数据)1. 根据 HTTP 规范,POST 表示可能修改变服务器上的资源的请求。例如我们在刷知乎的时候对某篇文章进行点赞,就是提交的 POST 请求,因为它改变了服务器中的数据(该篇文章的点赞数)。2. POST 方法因为有可能修改服务器上的资源,所以它是不符合安全和幂等性的。3. 从前面关于 POST 的请求报文也可以看出,POST 是将请求信息放置在请求数据中的,这也是 POST 和 GET 的一点不那么重要的区别。有一些博客的说法是 GET 请求的请求信息是放置在 URL 的而 POST 是放置在请求数据中的所以 POST 比 GET 更安全。其实这种说法很有问题,随便抓下包 POST 中的请求报文就暴露无疑了,这又何来安全之说?4. 因为 POST 方法的请求信息是放置在请求数据中的,所以它的请求信息是没有长度限制的。5. POST 方法会产生两个 TCP 数据包,浏览器会先将请求头发送给服务器,待服务器响应100 continue,浏览器再发送请求数据,服务器响应200 ok(返回数据)。这么看起来 GET 请求的传输会比 POST 快上一些(因为GET 方法只发送一个 TCP 数据包),但是实际上在网络良好的情况下它们的传输速度基本相同
HTTP请求中POST与GET的区别
最新推荐文章于 2022-09-15 08:14:13 发布