get和post的区别总结
直观区别
- get请求参数包含在url中,post通过request body传递参数。
- get请求参数长度有限制(这是因为不同浏览器对url有限制的原因),而post传参理论上是没有大小限制的。
- get请求只能进行url编码,post支持多种编码方式。
- get比post请求更不安全,因为它的参数直接暴露在url上面,所以不能用get传递敏感信息。
本质上
- 但本质上get和post是没有区别的。
- get和post是HTTP协议中两种发送请求的方法,HTTP的底层是TCP/IP,所以get和post的底层也就是TCP/IP。
- get和post都是TCP链接,所以他们能做的事情是一样的。
那么get和post那些区别是从何而来呢?
- 不同的浏览器和服务器对传输的参数进行了限制。
- 浏览器通常都会限制url的长度在2kb个字节,服务器最多处理64kb大小的url,因此才产生的区别。
get和post有一个很重大的区别
- get发送请求产生一个TCP包,post产生两个TCP包
- 用get方式请求,浏览器会把请求头和data一并返回;pos方式请求,浏览器先发header,服务器响应以后浏览器再返回data。