关于GET请求和POST请求

GET请求是一种HTTP方法,用于从服务器检索数据。它将请求的数据附加在URL后面,以查询字符串的形式出现。
POST请求也是一种HTTP方法,用于向服务器发送数据。它将数据存储在请求体中,不会出现在URL中。

相同点:GET请求和POST请求底层都是基于TCP/IP协议实现的,使用二者中的任意一个,都可以实现客户端和服务器端的双向交互。

不同点:1.定义:GET请求一般是获取数据,POST请求一般是提交数据。

2.安全性:GET请求,请求数据暴露在URL中;POST请求,数据存储在请求体中;相比之下POST请求更安全。(但从传输角度来讲,它们都不安全,HTTP是明文传输,如果在网络节点上抓包,就能完整地获取数据报文,安全传输可用HTTPS)

GET请求在地址栏后面以?的方式传参,多个参数之间用&分隔(也可以自己约定参数的写法)

POST请求是在Body以表单的方式传参。

3.数据量:GET请求数据量有限制,通常不超过2KB;POST请求数据量较大,没有大小限制。

4.适用范围:GET请求适合请求无状态操作,如页面跳转、检索数据等;POST请求适合请求有状态的操作,如表单提交、上传文件等。

HTTP协议无状态中的“状态”到底指的是什么?

5.幂等性:GET请求支持幂等性,即多次请求同一资源,结果相同;POST请求不支持幂等性,即多次请求同一资源,结果不同。

(幂等性:对于同一操作,无论是一次还是多次执行,产生的结果是一致的,不会因为多次执行而产生副作用)

6.编码类型:GET请求的编码类型为:application/x-www-form-urlencoded;POST请求的编码类型为:application/x-www-form-urlencoded 或 multipart/form-data。

(application/x-www-form-urlencoded是一种MIME类型,用于在HTTP请求中传输表单数据。当你在HTML表单中使用method属性为“post”时,浏览器就会默认使用这种编码方式来发送表单数据。

工作原理:application/x-www-form-urlencoded编码方式将表单数据按照键值对的形式进行编码,其中键和值都使用字符串表示。编码后的数据以“&”符号分隔不同的键值对,以“=”符号分隔键和值。最终,整个编码后的数据会被放在HTTP请求的body中发送给服务器。
例如:如果一个表单中有两个字段,分别为name和age,它们的值分别为Tom和25,那么经过application/x-www-form-urlencoded编码后,发送给服务器的数据将会是:name=Tom&age=25)

7.后退按钮/刷新:点击后退按钮/刷新时,GET请求无害,POST请求,数据会被重新提交。

8.书签:GET请求可被浏览器收藏为书签,而POST请求不能。

9.缓存:GET请求能被缓存,而POST请求不能。

10.历史:GET请求参数会被完整保留在浏览器历史中,而POST请求参数不会被保留在历史中。

11.数据类型:GET请求只允许ASCII字符,POST请求没有限制。

参考:

GET 和 POST 请求:理解它们之间的区别和适用场景

GET和POST请求的区别(超详细)

深入理解application/x-www-form-urlencoded编码方式

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值