GET 和 POST 请求有什么区别?POST 和 PUT 请求有什么区别?

GET 和 POST 请求有什么区别?POST 和 PUT 请求有什么区别?

GET 和 POST 请求有什么区别?

相同点

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

不同点

  • GET 和 POST 最本质的区别是“约定和规范”上的区别,在规范中,定义 GET 请求是用来获取资源的,也就是进行查询操作的,而 POST 请求是用来传输实体对象的,因此会使用 POST 来进行添加、修改和删除等操作。 按照约定来说,GET 和 POST 的参数传递也是不同的,GET 请求是将参数拼加到 URL 上进行参数传递的,而 POST 是将请参数写入到请求正文中传递的,这里只是约定,并不属于HTTP规范,相反的,我们可以在POST请求中url中写入参数,或者GET请求中的body携带参数

  • GET 请求一般会被缓存,比如常见的 CSS、JS、HTML 请求等都会被缓存;而 POST 请求默认是不进行缓存的。

  • GET 请求的参数是通过 URL 传递的,而 URL 的长度是有限制的,通常为 2k,当然浏览器厂商不同、版本不同这个限制的大小值可能也不同,但相同的是它们都会对 URL 的大小进行限制;而 POST 请求参数是存放在请求正文(request body)中的,所以没有大小限制。

  • GET 请求可以直接进行回退和刷新,不会对用户和程序产生任何影响;而 POST 请求如果直接回滚和刷新将会把数据再次提交

  • GET 请求的参数会保存在历史记录中,而 POST 请求的参数不会保留到历史记录中。

  • GET 请求的地址可被收藏为书签,而 POST 请求的地址不能被收藏为书签。

  • POSTGET 安全,因为数据在地址栏上不可见

    然而,从传输的角度来说,他们都是不安全的,因为HTTP 在网络上是明文传输的,只要在网络节点上捉包,就能完整地获取数据报文

    只有使用HTTPS才能加密安全

POST 和 PUT 请求有什么区别?

PUT 请求是 HTTP 协议中的一种请求方法,通常用于更新或替换服务器上的资源。使用 PUT 请求时,客户端需要将整个资源的新版本发送到服务器。如果服务器上已存在该资源,则用客户端提交的新版本替换原有的资源。如果该资源不存在,则会创建一个新的资源。

POST 请求是 HTTP 协议中的一种请求方法,通常用于创建新的资源或提交数据到服务器进行处理。使用 POST 请求时,客户端将数据提交到服务器,服务器根据数据进行处理,并返回响应。通常情况下,POST 请求会在服务器上创建新的资源,并返回该资源的 URI。

  • 幂等性:PUT是幂等的,而POST不是。也就是说,使用PUT方法多次对同一资源进行操作,其结果总是相同的。但如果使用POST方法,每次请求都会创建一个新的资源。

  • URI指定:在使用PUT方法时,你需要知道你要更新或创建资源的确切URI。而在使用POST方法时,你通常不需要知道新资源的URI,因为这由服务器决定。

  • 用途:POST通常用于创建新资源,而PUT则更多用于更新或者创建资源。

  • 服务器响应:使用POST方法时,服务器通常会返回201 Created以及新创建资源的URI。使用PUT方法时,如果是更新操作,服务器通常会返回200 OK或204 No Content;如果是创建操作,则会返回201 Created。

  • 安全性:从理论上讲,因为POST非幂等,所以稍微更安全一点。因为即使有人截获了POST请求,他们也不能通过重放请求来产生相同的效果(创建多个资源)。

  • 完整性和局部性:PUT通常需要发送完整的资源数据,而POST可以只发送部分数据来创建资源。

应用场景

  • 使用POST:当你不知道新资源的URI,或者希望服务器为你生成一个新资源时,应该使用POST。
  • 使用PUT:当你知道要操作资源的确切URI,并且希望完全替换或创建这个资源时,应该使用PUT。
  • 17
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值