GET和POST的区别是什么

疑惑一号疑惑一号 in 问答 2021-08-17 9:39:44

他们本质都是TCP连接,并无区别,但是由于http的规定以及浏览器和服务器的限制,导致他们在应用过程中可能有所不同

  1. get方法的特点

请求数据会附在URL之后(放在请求行中,以 ?分割URL和传输数据,多个参数用 & 连接)

get是会被浏览器主动缓存的,如果下一次传输的数据相同,那么就会返回缓存中的内容,可以更快的展示数据

get方法的UR一般都有长度限制,但是需要注意的是http协议中并未规定get请求的长度。这个长度限制主要是由浏览器和web服务器决定的,并且各个浏览器对长度限制各不相同

get方法只产生一个TCP数据包,浏览器会把请求头和请求数据一并发送出去,服务器响应200 ok(返回数据)

  1. post方法的特点

根据http规范,post可能改变服务器上的资源的请求(点赞就是post请求),因为有可能修改服务器上的资源,所以不符合安全性和幂等性

因为post方法是放在请求数据的,所以它的请求信息是没有长度限制的

post方法会产生两个TCP数据包,浏览器会先将请求头发送给服务器,待服务器返回100 continue,浏览器再发送请求数据,服务器响应 200 ok(返回数据),这个看起来get比post快一些,但是实际上,在网络状况良好的情况下,他们的传输速度基本相同。

-- End --

相关推荐