📑 题目:41. GET 和 POST 的区别?
参考解析
请求方式 | 数据位置 | 明文密文 | 数据安全 | 长度限制 | 应用场景 |
---|---|---|---|---|---|
GET | HTTP 请求的 path 中 | 明文 | 不安全 | 长度较小,一般 2k | 查询数据 |
POST | HTTP 请求 body 中 | 可明可密 | 安全 | 支持较大数据传输 | 修改数据 |
GET 请求可被缓存;POST 请求不会被缓存。
GET 请求可被收藏为书签;POST 不能被收藏为书签。
【非常有趣】参见 《99%的人理解错 HTTP 中 GET 与 POST 的区别》
- 对于 GET 方式的请求,浏览器会把 HTTP header 和 data 一并发送出去,服务器响应 200(返回数据)。
- 而对于 POST,浏览器先发送 header ,服务器响应 100 continue ,浏览器再发送 data ,服务器响应 200 ok(返回数据)。
也就是说,GET 只需要汽车跑一趟就把货送到了,而 POS T得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。
ps:不过要注意,POST 具体发几次,也和浏览器的实现有关系。例如:Firefox 只发一次。
ps2:据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的 TCP 在验证数据包完整性上,有非常大的优点。
**