GET 和 POST 的区别

目录

GET 和 POST 的区别

一、数据位置

二、用途

三、数据大小限制

四、TCP 数据包数量

五、缓存机制


在 Web 开发中,GET 和 POST 是两种常见的数据提交方式,它们之间存在着一些区别。

一、数据位置

  1. GET:将请求数据放在 URL 上,以问号分割 URL 和传输的数据,多个参数之间以 “&” 符相连。例如,访问3w 点和天 level.com,搜索内容为 “circle”,URL 变为3w 点和天 level.com?wk=circle
  2. POST:把数据放在 HTTP 数据包里面,也就是 request body 中。通过靶场示例,使用 BP 抓包可以看到,提交数据如 “username=rear&password=real123” 在请求体中,而 URL 里不会显示提交数据。

二、用途

  1. GET:一般情况下用来获取数据。
  2. POST:一般用于修改数据。

三、数据大小限制

  1. GET:提交数据最大为 2K,但实际上其限制取决于不同浏览器,最大大小可能不一样。
  2. POST:理论上没有限制。

四、TCP 数据包数量

  1. GET:只产生一个 TCP 数据包,浏览器会把 HTTP 的头和数据一并发出,服务器响应 200 表示返回数据。
  2. POST:产生两个 TCP 数据包。首先浏览器先发送 head 头,服务器响应 100 表示 continue(继续),然后浏览器再发送数据,服务器响应 200 表示 ok 并返回数据。

五、缓存机制

  1. GET:会被浏览器主动缓存。例如,访问某个页面后再次访问,可能会自动补全之前访问过的参数,这是因为被缓存了。
  2. POST:不会被浏览器主动缓存,除非手动设置。

综上所述,GET 和 POST 在数据位置、用途、数据大小限制、TCP 数据包数量和缓存机制等方面存在明显区别,在实际开发中应根据具体需求选择合适的提交方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值