GET和POST本质上就是TCP链接

GET和POST请求区别,这个是被问烂的题了

一、常规答案:

  1. GET 在浏览器回退时是无害的,而 POST 会再次提交请求。
  2. GET 产生的 URL 地址可以被 Bookmark,而 POST 不可以。
  3. GET 请求会被浏览器主动 cache,而 POST 不会,除非手动设置。
  4. GET 请求只能进行 url 编码,而 POST 支持多种编码方式。
  5. GET 请求参数会被完整保留在浏览器历史记录里,而 POST 中的参数不会 被保留。
  6. GET 请求在 URL 中传送的参数是有长度限制的,而 POST 么有。
  7. 对参数的数据类型,GET 只接受 ASCII 字符,而 POST 没有限制。
  8. GET 比 POST 更不安全,因为参数直接暴露在 URL 上,所以不能用来传递敏感信息。
  9. GET 参数通过 URL 传递,POST 放在 Request body 中。

二、分析一下:

get 请求参数在 url 地址上,直接暴露,post 请求的参数放 body 部分,按 F12也直接暴露了,所以没啥安全性可言
GET 参数通过 URL 传递,POST 放在 Request body 中”这个其实也不准,post请求也可以没 body,也可以在 url 传递呢?

三、总结:

GET 和 POST 有一个重大区别,简单的说:
GET 产生一个 TCP 数据包;POST 产生两个 TCP 数据包。
长的说:
对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应 200(返回数据);
而对于 POST,浏览器先发送 header,服务器响应 100 continue,浏览器再发送data,服务器响应 200 ok(返回数据)。

详情可以参考这篇,写的挺好的GET 和 POST 两种基本请求方法的区别

posted @ 2020-11-06 09:58  橙子Cjw  阅读(1268)  评论(0编辑  收藏  举报