精华内容
下载资源
问答
  • PUT和POST区别

    2021-02-04 08:04:48
    PUTPOS都有更改指定URI的语义....PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源) Post请求:后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源) ...

    PUT和POS都有更改指定URI的语义.但PUT被定义为idempotent的方法,POST则不是.idempotent的方法:如果一个方法重复执行

    多次,产生的效果是一样的,那就是idempotent的。也就是说:

    PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源)

    Post请求:后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源)

    展开全文
  • PUT和POST区别

    2021-06-13 11:00:37
    我们都知道,PUT和POST是HTTP的两个方法(Method),都可以用来向HTTP服务器提交数据。似乎用哪个都可以,但其实两者还是有本质的区别的。 网上关于两者区别的文章比较多,但有相当一部分绝对是误导人。所以这次特意...

    我们都知道,PUT和POST是HTTP的两个方法(Method),都可以用来向HTTP服务器提交数据。似乎用哪个都可以,但其实两者还是有本质的区别的。

    网上关于两者区别的文章比较多,但有相当一部分绝对是误导人。所以这次特意查看了RFC7231,来澄清二者的区别。

    首先直接摘出RFC7231中的的部分关键原文:

    The fundamental difference between the POST and PUT methods is highlighted by the different intent for the enclosed representation. The target resource in a POST request is intended to handle the enclosed representation according to the resource’s own semantics, whereas the enclosed representation in a PUT request is defined as replacing the state of the target resource. Hence, the intent of PUT is idempotent and visible to intermediaries, even though the exact effect is only known by the origin server.

    Proper interpretation of a PUT request presumes that the user agent knows which target resource is desired. A service that selects a proper URI on behalf of the client, after receiving a state-changing request, SHOULD be implemented using the POST method rather than PUT.

    上面这两段描述的关键词就是“idempotent”(幂等),理解了这个词就理解了二者的本质区别。下面就围绕这个词从以下几个角度分析PUT和POST的区别。

    1、使用PUT时,必须明确知道要操作的对象,例如:

    PUT /customer/doc/1

    {

    “name”: “John Doe”

    }

    上面的PUT请求明确是对编号为1的文档进行操作,这里编号为1的文档就是要操作的对象。如果该文档不存在,就创建该文档;如果文档已经存在,就直接整个替换文档内容。

    2、 有人可能会质疑,上面的例子用POST也可以实现。没错,如果用将上例中的PUT接口改成POST接口,就是这样:

    POST /customer/doc/

    {

    “name”: “John Doe”

    }

    注意这里有一个重要的不同,这里POST请求并不知道要操作的对象,它只是向HTTP服务器提交一篇新文档,由HTTP服务器为该文档产生一个编号。这就是上面从RFC7231中摘出的第二段文字所描述的含义。

    3、有人可能会继续质问:用POST也可以用来修改目标资源对象阿。说得还是没错。还是沿用上面的例子,稍作如下改动:

    POST /customer/doc/1

    {

    “description”: “I am a student”

    }

    这里的含义是给编号为1的文档增加一个属性“description”。注意这里有两个不同:(1)这里编号为1的文档必须是已经存在的文档,否则必须使用PUT;(2)这里是对目标对象的部分修改。只是增加了一个新属性“description”,之前的属性“name”不受影响。

    4、最后简要总结一下,使用PUT时,必须明确知道要操作的对象,如果对象不存在,创建对象;如果对象存在,则全部替换目标对象。同样POST既可以创建对象,也可以修改对象。但用POST创建对象时,之前并不知道要操作的对象,由HTTP服务器为新创建的对象生成一个唯一的URI;使用POST修改已存在的对象时,一般只是修改目标对象的部分内容。

    经过了以上4条的分析之后,对PUT和POST的区别应该很清楚了吧?再强调一遍,PUT是“idempotent”(幂等),意味着相同的PUT请求不管执行多少次,结果都是一样的。但POST则不是。就类似于"x=1"这条语句是幂等的,因为无论执行多少次,变量x的值都是1;但"x++"就不是幂等的,因为每执行一次,变量x的值都不一样。

    当然,这里讲的都是规范,都是最佳实践(best practise)。如果你在实际开发中,不按这个来,没有人能管得了你;但是当你的REST API要开放给别人使用时,就会和大家所接受的“普世价值”违背,很可能就会发生各种问题。

    如果还有疑问,欢迎留言交流讨论:)。

    –END–

    展开全文
  • 2、POST和PUT区别 HTTP的其他几个动词GET、DELETE等就不详谈了,这里主要说下POST和PUT。 在操作时的区别如下: POST /uri 创建 DELETE /uri/xxx 删除 PUT /uri/xxx 更新或创建 GET /uri/xxx 查看 POST不用加具体...

    0、什么是Restful架构

    比较难说清楚,这部分大雾状态,引ruanyf 理解RESTful架构 的几句总结吧:

    Fielding将他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。我对这个词组的翻译是"表现层状态转化"。

    RESTful API 设计指南 中也提到了一些命名规范、HTTP动词、状态码之类的基础概念,在本文中不是重点,不再赘述。

    1、幂等操作

    幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。

    在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。

    2、POST和PUT的区别

    HTTP的其他几个动词GET、DELETE等就不详谈了,这里主要说下POST和PUT。

    在操作时的区别如下:

    POST /uri 创建

    DELETE /uri/xxx 删除

    PUT /uri/xxx 更新或创建

    GET /uri/xxx 查看

    POST不用加具体的id,它是作用在一个集合资源之上的(/uri),而PUT操作是作用在一个具体资源之上的(/uri/xxx)。

    在ES中,如果不确定document的ID(documents具体含义见下),那么直接POST对应uri( “POST /website/blog” ),ES可以自己生成不会发生碰撞的UUID;

    如果确定document的ID,比如 “PUT /website/blog/123”,那么执行创建或修改(修改时_version版本号提高1)

    ES与DB的层级关系类比

    ES:indices --> types --> documents --> fields

    DB:databases --> tables --> rows --> columns

    在幂等性的区别如下:

    PUT、GET、DELETE是幂等的,由于同一条这样的指令,执行多次结果都一样。比如 PUT /uri/xxx 多次,那么结果和这条指令执行一次效果一样。

    而POST是非幂等的,执行多次更改多次服务器状态。比如POST /uri 多次,那么生成多个UUID的document,执行多次效果当然和执行一次不一样了~

    参考:

    ES中const

    前  言 EScript 上一次总结了,ES中let和var的区别,今天在带大家了解另一个声明关键词:const. const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改 ...

    ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理

    分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 ...

    JDBC中的Statement和PreparedStatement的区别

    JDBC中的Statement和PreparedStatement的区别

    opengl es中不同的绘制方式

    opengl es中不同的绘制方式 转载请保留出处:http://xiaxveliang.blog.163.com/blog/static/297080342013467344263/ 1. GL_P ...

    LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别

    LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别 在写LINQ语句的时候,往往会看到.AsEnumerable() 和 .AsQueryable() .例如: s ...

    JavaScript中const、var和let区别浅析

    在JavaScript中有三种声明变量的方式:var.let.const.下文给大家介绍js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始 ...

    【前端】js中new和Object.create()的区别

    js中new和Object.create()的区别 var Parent = function (id) { this.id = id this.classname = 'Parent' } Pare ...

    SQL Server中Text和varchar(max)数据类型区别

    SQL Server中Text和varchar(max)数据类型区别   以前只知道text和image是可能被SQL Server淘汰的数据类型,但具体原因不太清楚,今天读书的时候发现了text与v ...

    简单理解Struts2中拦截器与过滤器的区别及执行顺序

    简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...

    随机推荐

    [Java] Java record

    2-1 java中的封装 概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法类实现对隐藏信息的操作和访问. 好处: 1. 只能通过规定的方法访问数据 2. 隐藏类的实例 ...

    Sublime Text插件:HTML-CSS-JS Prettify

    该插件依赖到nodejs环境 1.安装 在Sublime Text中,按下Ctrl+Shift+P调出命令面板; 输入install 调出 Install Package 选项并回车; 输入prett ...

    JS获取select选中的值,所有option值

    CSS3 2D 转换

    2D 转换 在本章中,您将学到如下 2D 转换方法: translate() rotate() scale() skew() matrix() 您将在下一章学习 3D 转换. 实例 div { tra ...

    关于GP的理解

    连续式中,CMMI有5个GG:阶段式只有3个.多出来的2个GG,一个对应的是阶段4的量化,一个是阶段5的持续优化,确保了阶段式和连续式在范围上的一致性. GG就是讲各个过程中的共有元素抽取出来,形成的 ...

    Python深拷贝和浅拷贝

    1- Python引用计数[1] 1.1 引用计数机制 引用计数是计算机编程语言中的一种内存管理技术,是指将资源(可以是对象.内存或磁盘空间等等)的被引用次数保存起来,当被引用次数变为零时就将其释放的 ...

    MFC DLL 资源模块句柄切换[转]

    以前写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的函数开始添加上 AFX_MANAGE_STATE(AfxGetStaticModuleState()).一直不明白这样 ...

    ehCache浅谈(转)

    ehcache FAQ中提到 Remember that a value in a cache element is globally accessible from multiple threads ...

    Arduino 串口篇 Arduino发送二进制 send binary via RS232-to-USB to PC

    有用的链接在这里:http://hi.baidu.com/mizuda/item/06b7fdc1d0e45a0ec710b2dd 更加详细的内容请查阅Arduino官方:http://arduino ...

    51nod 1536不一样的猜数游戏 思路:O(n)素数筛选法。同Codeforces 576A Vasya and Petya's Game。

    废话不多说,先上题目. 51nod Codeforces 两个其实是一个意思,看51nod题目就讲的很清楚了,题意不再赘述. 直接讲我的分析过程:刚开始拿到手有点蒙蔽,看起来很难,然后......然后 ...

    展开全文
  • 1、PUT和POST区别PUTPOS都有更改指定URI的语义.但PUT被定义为idempotent(幂等)的方法,POST则不是.idempotent的方法:如果一个方法重复执行多次,产生的效果是一样的,那就是idempotent的。也就是说:PUT请求:如果...

    1、PUT和POST区别

    PUT和POS都有更改指定URI的语义.但PUT被定义为idempotent(幂等)的方法,POST则不是.idempotent的方法:

    如果一个方法重复执行多次,产生的效果是一样的,那就是idempotent的。

    也就是说:

    PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源)

    Post请求:后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源)

    2、GET和POST区别

    1、参数传递方式:GET通过URL传递,POST放在Request body中。

    2、参数缓存策略:GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

    3、参数转码:Get 请求中有非 ASCII 字符,会在请求之前进行转码,POST不用,因为POST在Request body中,通过 MIME,也就可以传输非 ASCII 字符。

    4、 一般浏览器输入网址访问网站都是GET请求

    5、参数大小限制:HTTP的底层是TCP/IP。HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。GET/POST都是TCP链接。GET和POST能做的事情是一样的。但是请求的数据量太大对浏览器和服务器都是很大负担。所以业界有了不成文规定,(大多数)浏览器通常都会限制url长度在2K个字节,而(大多数)服务器最多处理64K大小的url。

    6、请求过程:GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。但并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

    ————————

    展开全文
  • 1.get请求一般是去取获取数据(其实也可以提交,...3.get请求刷新服务器或者回退没有影响,post请求回退时会重新提交数据请求。 4.get请求可以被缓存,post请求不会被缓存。 5.get请求会被保存在浏览器历史记录当中,p
  • HTTP中POST和PUT区别

    2021-08-12 09:16:26
    PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源) POST请求:后一个请求不会把第一个请求覆盖掉。(所以Post用来增加源) 参考Resultful风格 使用规定 在http协议中,四个表示...
  • PostPut区别

    2020-12-28 17:30:23
    PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来...就像前面所讲的一样,既然PUT和POST操作都是向服务器端发送数据的,那么两者有什么区别呢。。。POST主要作用在一个集合资源..
  • Http / Put Post 区别

    2021-04-06 11:20:07
    还有的观点认为可以用 PUT POST 中任何一个来做创建或者更新一个资源。这些观点都只看到了风格,争论起来也只是争论哪种风格更好,其实,用 PUT 还是 POST,不是看这是创建还是更新资源的动作,这不是风格的问题...
  • } 3、post public static String doPost(String requestUrl, String payload) { String strReturn=""; PostMethod httpost = new PostMethod(requestUrl); httpost.setRequestBody(payload); try { httpClient....
  • Get,Post,Put,Delete,Petch请求区别 1.GET 一般的我们使用GET请求,来做一些查询操作。不会对数据库进行修改是安全...put请求post一样都会改变服务器的数据,但是put的侧重点在于对于数据的修改操作,但是post侧重于
  • 1、PUT和POST区别 PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源) Post请求:后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源) 如果一个方法重复执行多次,产生的...
  • 在客户端服务器之间进行请求和响应时,有两种基本的请求方式:get和post。其中,get请求表示从指定的资源请求数据,post请求表示向指定的资源提交要被处理的数据。 HTTP协议定义了与服务器交互的不同方法,基本的...
  • 以下 ajax 发一个 post,一切正常$.ajaxurl: ...window.open "/content/news"以下照搬上面,换路由,且改 put 方法...
  • /// <summary> /// 通用请求方法 /// </summary> /// <param name="url"></param> /// <param name="datas"></param>...POST GET PUT DELETE</param> //.
  • 一般我们在浏览器的地址栏输入网址回车后,发送的是GET请求当用表单提交时(最普遍的是用户登录),我们可以指定是GET还是POST请求,这里需要注意的是有的浏览器并不支持PUT请求,那后台restful的PUT请求对应的方法岂不是...
  • 事实上,它们最根本的区别就是:POST方法不是幂等的,而PUT方法则有幂等性。那这又衍生出一个问题,什么是幂等? 幂等(idempotent、idempotence)是一个抽象代数的概念。在计算机中,可以这么理解,一个幂等操作的...
  • 二、Put和Post区别 Put相当于:i=996; Post相当于:i++; 总结:执行多次相同的Put请求,与执行一次Put请求,效果相同,即Put请求具有幂等性()。Post请求不具有幂等性。 三、Get、Put、Post、Delete示例 .....
  • 现在基本上所有的后端springboot请求都...二、测试post请求 测试put请求 Header里面主要存放Cookie,请求数据类型 三、测试delete请求 因为在HTTP1.0中只有GET和POST以及HEAD三种方式,而剩下的PUTDE...
  • js:get/post/put/delete/option请求

    千次阅读 2021-01-08 16:47:29
    1、GET get请求是用来获取数据的,只是用来查询数据,不对服务器的数据做任何的修改,新增,删除等操作。 在这里我们认为get请求是安全的,以及幂等的。安全就是指不影响服务器的数据,幂等是指同一个...post请求一般
  • GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 表单提交中get和post方式的区别有5点 get是从服务器上获取数据,post是向服务器传送数据。 get是把参数数据队列加到提交表单...
  • HTTP REST请求POST和PUT区别

    千次阅读 2021-12-15 13:48:28
    POST和PUT区别 直接区别 PUT方法是幂等的,因此,如果多次发送重试请求,那应该等同于单个请求修改。 POST方法不是幂等的,因此,如果重试请求N次,那将获得N个资源,其中N个不同的URL在服务
  • HTTP定义了与服务器交互的不同方法(Method),基本方法有4种,分别是GET 、POSTPUT和DELETE。 怎么理解呢?url地址用于描述一个网络上的资源,而http中的get、postput和delete方法对应着这个资源的“查” “改...
  • 但是在外网环境中用域名访问接口,get和post请求均正常,而put和delete请求均无法正常使用。 查了各种资料,也按要求配置了nginx,就是不行 server { listen 8099; server_name http://aa.com; #index index...
  • 2、POST;3、PUT;4、DELETE;5、HEAD;6、TRACE;7、OPTIONS;二、各个方法介绍:1、GET方法:对这个资源的查操作。2、DELETE方法:对这个资源的删操作。但要注意:客户端无法保证删除操作一定会被执行,因为HTTP...
  • Nodejs中前后端数据请求get和post区别和理解1、get 和 post 的区别1.ajax实现过程:2、ajax 的优缺点;优点:缺点 前后端数据传输 需要前端发起请求 请求方法: http请求可以使用多种请求方法。 HTTP1.0定义了三种...
  • 点击上方Java后端,选择设为星标优质文章,及时送达GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在...
  • Log.i(TAG,"调用POST请求------------------------------------");int statusCode =httpResponse.getStatusLine().getStatusCode();if (statusCode ==HttpStatus.SC_OK) { response=EntityUtils.toString...
  • GET和POST请求的本质区别是什么? 文章目录前言一、我的答案二、简单介绍下GET和POST建立项目1.GET方式2.POST方式本文重点然后接下来才是我想说的也是看到wx中某个博主猿某某说的:GET产生一个TCP数据包POST产生两个...
  • 使用所有其他可选方法,我认为覆盖$_POST,而不会使您的服务器爆炸,最有可能导致您头痛的道路. 我把这个小静态类放在一起,你会在考虑之前先考虑一下.使用: //To check if this is a rest request: Rest::isRest(); //...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 252,738
精华内容 101,095
关键字:

put请求和post的区别