http:post和get的区别

http:post和get的区别

表面区别:

1.get的请求参数放在url的后面,而post的参数放在body中

2.get传送的数据量较小,主要受url长度限制;post传输的数据量较大

3.post的安全性比get高,因为post的请求参数放在body中用户不可见;而get参数放在url中用户可见

4.post请求会发两次两次请求,而get只会发一次请求

实际区别:

get和post都是tcp协议,两者实际没有什么区别。get也可以用body传输参数;post也可以将参数放在url中进行传输。

两者不同之处在于定义:

get定义为读取一个资源,可以反复读取并且返回的数据一样,具有幂等性

post定义为向服务器发送请求让服务器处理,一般不具备幂等性。

其两者本质上没有什么区别,只是我们人为统一定义的区别。规范一个请求格式。让开发人员知道这个请求下该去哪获取请求参数(当然你也可以不遵守定义,自己怎么方便怎么弄,当然特立独行并不能代表统一定义,大部分人还是遵守统一定义的)

post发两次请求,是客户端为了提高数据吞吐和降低带宽浪费上所作的一个优化。当传输的数据超过一定量时,可以先发一个请求头的请求来判断这个请求是否合法可以请求,当服务器判断该请求正常会回复客户端100状态码让客户端将剩下的数据发送给服务器进行处理。这样可以避免大数据量的请求一次发送到服务器,请求不合法服务器拒绝请求导致浪费带宽传输请求体。所以发几次请求并不是http方法决定了,而是客户端根据实际情况决定可以灵活的决定请求发送的次数。当用get方法携带body请求体(一般不建议这样处理,统一请求格式)进行请求时也可以发送两次请求

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。