GET和POST请求的区别

发布时间:2022-06-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了GET和POST请求的区别脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

首先,GETPOST 请求都是属于HTTP协议的请求方法

一、GET请求特点

1、以 ? 分割 URL 和传输数据,多个参数用 & 连接:“https://www.baidu.com/s?ie=UTF-8&wd=%E7%99%BE%E5%BA%A6”;

2、根据 HTTP 规范,get请求用于信息获取,而且应该是安全幂等的,即该操作用于获取信息而非修改信息;

3、get请求后会被浏览器主动缓存,如果下一次传输的数据相同,那么就会返回缓存中的内容,可快速显示数据;

4、get请求的URL一般都具有长度限制,但是 HTTP 协议中并未规定get请求的长度,这个长度有限制主要是由浏览器和 Web 服务器所决定的,并且各个浏览器对长度的限制也各不相同;

5、get请求只产生一个 TCP 数据包,浏览器会把请求头和请求数据一并发送出去,服务器响应 200;

二、POST 请求特点

1、根据 HTTP 规范,post请求可能会改变服务器上的资源的请求,它是不符合安全和幂等性的。例如我们在刷知乎的时候对某篇文章进行点赞,就是提交的 post请求,因为它改变了服务器中的数据(该篇文章的点赞数);

2、post请求是将请求信息放置在请求数据中的,因此无长度限制;

3、post请求会产生两个 TCP 数据包,浏览器会先将请求头发送给服务器,待服务器响应100 continue,浏览器再发送请求数据,服务器响应200 ok,所以从这点上看,get请求比post请求会更快一点;

三、GETPOST 的区别

已知get和post请求都是 HTTP 请求协议的请求方法,而 HTTP 又是基于TCP/IP的关于数据如何在万维网中如何通信的协议,所以 GET/POST 实际上都是 TCP 链接,他们在本质上是一样的

问:既然 GET 和 POST 的底层都是 TCP,那么为什么 HTTP 还要特别将它们区分出来呢?

答:我们在进行数据传输时,可以对单纯的获取数据资源,以及修改服务器资源的请求进行类别管理,例如单纯获取资源的请求就规定为 GET、修改服务器资源的请求就规定为 POST,并且也对它们的请求报文的格式做出了相应的要求(例如请求参数 GET 位于 URL 而 POST 则位于请求数据中)

问:是否可以将 GET 的请求参数放置在请求数据中或者将 POST 的请求数据放置在 URL 中?

答:可以,(但是不符合http协议的规范),但是这样子做是否能得到我们期望的响应数据呢?答案是未必,这取决于服务器的行为。有些服务器会将请求数据中的参数读出,在这种情况下我们依然能获得我们期望的响应数据;而有些服务器则会选择直接忽略,这种情况下我们就无法获取期望的响应数据了。

总结:本质都是 TCP 链接,并无区别。但是由于 HTTP 的规定以及浏览器/服务器的限制,导致它们在应用过程中可能会有所不同。

 

 

脚本宝典总结

以上是脚本宝典为你收集整理的GET和POST请求的区别全部内容,希望文章能够帮你解决GET和POST请求的区别所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:并发