快捷搜索: 王者荣耀 脱发

Get请求和Post请求的区别

get请求和post请求的区别起初我就知道,get请求是明文在地址栏传输,而post请求则与之相反不会出现在地址栏

下面就是get和post请求的详解

区别

1、get请求一般用来请求获取数据

post请求一般作为发送数据到后台,传递数据,创建数据

2、get请求也可以传参到后台,但是传递的参数则显示在地址栏,安全性低,且参数的长度也有限制(2048字符)

post请求则是将传递的参数放在request body中,不会在地址栏显示,安全性比get请求高,参数没有长度限制

3、get请求刷新浏览器或者回退没有影响

post请求则会重新请求一遍

4、get请求可以被缓存,也会保留在浏览器的历史记录中

post请求不会被缓存,也不好保留在浏览器的历史记录中

5、get请求通常是通过url地址请求

post常见的则是form表单请求

总的来说get请求和post没有什么区别,因为都是基于http的请求,http的底层是tcp/ip,所以get和post请求底层也是tcp,其实get和post能做的事情是一样的,如果你给get请求加上request body,给post加上url也是可以的,技术上是行得通的,但是get请求传递的数据大小是有限制的,如果你传递的数据超过限制那么服务器就不会处理这部分数据,而有些服务器直接就给忽略掉了,所以虽然get可以带request body,但是不一定保证能被接受到。

最后还有一个区别,就是get产生一个tcp数据包,而post产生两个tcp数据包

get请求的话,浏览器会把header和data一起发送出去,服务器响应200并返回数据

post请求则是浏览器先发送header,服务器响应100 continue(这个表明服务端已经接收完所有的请求头,并且客户端应继续发送请求数据),然后再发送data,最后服务器响应200并返回数据

我们就拿送快递来打比方,get请求就是根据收货人信息直接把快递送给你,而post请求则是先询问你是不是收货人然后再把快递送给你

虽然看起来post请求到返回数据的时间长一点,但是在网络好的情况下这种差别基本上可以无视,但是post传递数据更完整,就算网络不好,也占有更大的优势

经验分享 程序员 微信小程序 职场和发展