一、GET 和 POST 是什么?
1、HTTP协议中的两种最常见的发送请求方法,那么 HTTP 又是什么?
2、HTTP 是基于 TCP/IP 的关于数据如何在万维网中如何通信的一种协议。3、HTTP 底层是 TCP/IP,所以 GET 和 POST 的底层也是 TCP/IP
4、GET 和 POST 本质上就是 TCP 链接,但是由于 HTTP 的规定和浏览器/服务器的限制,导致他们在应用过程中有些不同
二、GET 和 POST 的区别
1、GET 和 POST 的一个重大区别就是:GET 产生一个 TCP 数据包,而 POST 产生两个 TCP 数据包
对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,接着服务器返回响应 200。而对于 POST 方式的请求,浏览器先发送 header ,服务器返回响应 100(continue),浏览器再发送 data,服务器响应 200(OK),POST 需要两步,所以在时间上的消耗会比 GET 多一点,但在网络环境好的情况下,发一次包的时间和发两次包的时间差别可以忽略。
2、比较
GET | POST | |
---|---|---|
url 是否可见 | 请求的数据放在 url 参数中,url 可见 | 请求的数据放在 body 中,url 不可见 |
传输数据的大小 | 因为请求的数据放在 url 中,由于 url 长度有限制,所以一般情况下 GET 传输数据的大小也有限制,通常为 2k 字节 | 没有限制 |
数据传输方式 | 跟在 url 后面,通过拼接 url 进行参数传递 | 通过 body 传递参数 |
页面后退的反应 | 无影响 | 会重新提交请求 |
是否可以缓存 | 可以 | 不可以 |
安全性 | 低 | 相比 GET 较高 |