他们本质都是TCP连接,并无区别,但是由于http的规定以及浏览器和服务器的限制,导致他们在应用过程中可能有所不同
- get方法的特点
请求数据会附在URL之后(放在请求行中,以 ?分割URL和传输数据,多个参数用 & 连接)
get是会被浏览器主动缓存的,如果下一次传输的数据相同,那么就会返回缓存中的内容,可以更快的展示数据
get方法的UR一般都有长度限制,但是需要注意的是http协议中并未规定get请求的长度。这个长度限制主要是由浏览器和web服务器决定的,并且各个浏览器对长度限制各不相同
get方法只产生一个TCP数据包,浏览器会把请求头和请求数据一并发送出去,服务器响应200 ok(返回数据)
- post方法的特点
根据http规范,post可能改变服务器上的资源的请求(点赞就是post请求),因为有可能修改服务器上的资源,所以不符合安全性和幂等性
因为post方法是放在请求数据的,所以它的请求信息是没有长度限制的
post方法会产生两个TCP数据包,浏览器会先将请求头发送给服务器,待服务器返回100 continue,浏览器再发送请求数据,服务器响应 200 ok(返回数据),这个看起来get比post快一些,但是实际上,在网络状况良好的情况下,他们的传输速度基本相同。