PUT是幂等方法,而POST并不是。

  PUT用于更新操作,POST用于新增操作比较合适。

  PUT,DELETE操作是幂等的,所谓幂等就是指不管进行多少次操作,结果都一样。

        比如,我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE也是一样。

  POST操作不是幂等,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。

  还有一点需要注意的是,创建操作可以使用POST,也可以使用PUT。区别在于POST是作用在一个集合资源之上的(/articles),而PUT操作是作用在一个具体资源之上的(/articles/123),比如说很多资源使用数据库自增主键作为标识信息,而创建的资源的标识信息到底是什么只能由服务端提供,这个时候就必须使用POST。

[hadoop@master elasticsearch-2.4.]$ curl -XPOST http://master:9200/zhouls/user/1 -d '{"name" : "john"  , "age" : 28}'
{"_index":"zhouls","_type":"user","_id":"","_version":,"_shards":{"total":,"successful":,"failed":},"created":true}[hadoop@master elasticsearch-2.4.]$
[hadoop@master elasticsearch-2.4.]$
  
  zhouls是索引,user是类型,1是id
[hadoop@master elasticsearch-2.4.]$ curl -XPOST http://master:9200/zhouls/user -d '{"name" : "john"}'
{"_index":"zhouls","_type":"user","_id":"AVz5Q9u7U8bDb6QDgbDS","_version":,"_shards":{"total":,"successful":,"failed":},"created":true}[hadoop@master elasticsearch-2.4.]$
[hadoop@master elasticsearch-2.4.]$
  zhouls是索引,user是类型
  由此,可见,如果,我们不指定id,则会自动随机生成

  POST方式是自增id,PUT是必须要跟上id。

[hadoop@master elasticsearch-2.4.]$ curl -XPUT http://master:9200/zhouls/user/2?op_type=create -d '{"name" : "john"  , "age" : 28}'
{"_index":"zhouls","_type":"user","_id":"","_version":,"_shards":{"total":,"successful":,"failed":},"created":true}[hadoop@master elasticsearch-2.4.]$
[hadoop@master elasticsearch-2.4.]$
  zhouls是索引,user是类型,2是id,
  ?op_type=create是
[hadoop@master elasticsearch-2.4.]$ curl -XPUT http://master:9200/zhouls/user/2/_create -d '{"name" : "john"  , "age" : 28}'
{"error":{"root_cause":[{"type":"document_already_exists_exception","reason":"[user][2]: document already exists","index":"zhouls","shard":""}],"type":"document_already_exists_exception","reason":"[user][2]: document already exists","index":"zhouls","shard":""},"status":}[hadoop@master elasticsearch-2.4.]$
[hadoop@master elasticsearch-2.4.]$
 zhouls是索引,user是类型,2是id,
  _create是

  由此,可见,PUT是不允许,已经创建过的id,再来创建。
[hadoop@master elasticsearch-2.4.]$
[hadoop@master elasticsearch-2.4.]$ curl -XPUT http://master:9200/zhouls/user/3/_create -d '{"name" : "john" , "age" : 28}'
{"_index":"zhouls","_type":"user","_id":"","_version":,"_shards":{"total":,"successful":,"failed":},"created":true}[hadoop@master elasticsearch-2.4.]$
[hadoop@master elasticsearch-2.4.]$
[hadoop@master elasticsearch-2.4.]$

Elasticsearch之CURL命令的PUT和POST对比的更多相关文章

  1. Elasticsearch之CURL命令的GET

    这是个查询命令. 前期博客 Elasticsearch之CURL命令的PUT和POST对比 1. 以上是根据员工id查询. 即在任意的查询字符串中添加pretty参数,es可以得到易于我们识别的jso ...

  2. Elasticsearch之CURL命令的UPDATE

    对于,Elasticsearch之CURL命令的UPDATE包括局部更新和全部更新.可以去看我写的另一篇博客. Elasticsearch之更新(全部更新和局部更新) 总结: ES全部更新,使用PUT ...

  3. elasticsearch(3) curl命令

    curl 操作http的get/post/put/delete CURL 命令参数-a/--append 上传文件时,附加到目标文件-A/--user-agent <string> 设置用 ...

  4. Elasticsearch之CURL命令的DELETE

    也可以看我写的下面的博客 Elasticsearch之curl删除 Elasticsearch之curl删除索引库 删除,某一条数据,如下 [hadoop@master elasticsearch-] ...

  5. Elasticsearch之CURL命令的mget查询

    我这里, 再,创建一个zhouls2的索引库. [hadoop@master elasticsearch-]$ curl -XPUT 'http://master:9200/zhouls2/' {]$ ...

  6. Elasticsearch之CURL命令的version控制

    普通关系型数据库使用的是(悲观并发控制(PCC)) 当我们在修改一个数据前先锁定这一行,然后确保只有读取到数据的这个线程可以修改这一行数据 ES使用的是(乐观并发控制(OCC)) ES不会阻止某一数据 ...

  7. Elasticsearch之CURL命令的bulk批量操作

    大家,也可去看看我下面的博客 Elasticsearch之批量操作bulk 官网上,是举例了新建一个requests文件. [hadoop@master elasticsearch-]$ pwd /h ...

  8. Elasticsearch之CURL命令的DSL查询

    它是Domain Specific Language领域特定语言. https://www.elastic.co/guide/en/elasticsearch/reference/current/in ...

  9. Elasticsearch之CURL命令的HEAD

    如果只想检查一些文档是否存在,我们可以使用HEAD来替代GET方法,这样就只会返回HTTP头文件. [hadoop@master elasticsearch-]$ curl -i XHEAD http ...

随机推荐

  1. Crackme3 破解教程

    Crackme3 破解教程 1.先用PEiD对 Crackme3进行 壳测试 点击File右边的按钮,选中Crackme3 结果如下图所示: 即 无壳. 试运行软件 点击 Register now! ...

  2. HUST 1214 Cubic-free numbers II

    Cubic-free numbers II Time Limit: 10000ms Memory Limit: 131072KB This problem will be judged on HUST ...

  3. HDU 4451 容斥原理

    题目大意: n件衣服,m条裤子,k双鞋子进行搭配 妈妈指明了哪些衣服和裤子不能搭配,哪些裤子和鞋子不能搭配,问最后有几种搭配方法 先假设都能搭配 n*m*k 每次遇到衣服和裤子不能搭的,就要减一次k, ...

  4. 【BZOJ1014】火星人prefix(splay,Hash)

    题意: . 思路: ; ..,..]of longint; sum,size,fa,a,b,id,mi:..]of longint; n,m,i,x,y,s,k,j,cnt,root:longint; ...

  5. P - FatMouse and Cheese 记忆化搜索

    FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension ...

  6. 51 nod 1079 中国剩余定理

    1079 中国剩余定理 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K % ...

  7. MYSQL中的主要查询方法

    #简单查询 #查询表中的所有数据SELECT * FROM test; #查询表中的指定列的数据SELECT cid,cname FROM test; #过滤重复的数据SELECT DISTINCT ...

  8. internalsviewer

    https://intview2.codeplex.com/ https://internalsviewer.codeplex.com/releases/view/21139

  9. 非常适合新手的jq/zepto源码分析02

    function isPlainObject(obj) { return isObject(obj) && !isWindow(obj) && Object.getPr ...

  10. NETCore项目报错 An error occurred while starting the application

    在发布到IIS的webApi项目中,运行时报出以上错误, 解决方法: 1.打开发布目录文件夹,找到web.config文件 2.打开web.config找到stdoutLogEnabled=" ...