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

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

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

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

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

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

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

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

[hadoop@master elasticsearch-2.4.0]$ curl -XPUT http://master:9200/zhouls/user/2?op_type=create -d '{"name" : "john"  , "age" : 28}'
{"_index":"zhouls","_type":"user","_id":"2","_version":1,"_shards":{"total":2,"successful":2,"failed":0},"created":true}[hadoop@master elasticsearch-2.4.0]$
[hadoop@master elasticsearch-2.4.0]$ 
  zhouls是索引,user是类型,2是id,
  ?op_type=create是
[hadoop@master elasticsearch-2.4.0]$ 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":"2"}],"type":"document_already_exists_exception","reason":"[user][2]: document already exists","index":"zhouls","shard":"2"},"status":409}[hadoop@master elasticsearch-2.4.0]$
[hadoop@master elasticsearch-2.4.0]$ 
 zhouls是索引,user是类型,2是id,
  _create是

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

Elasticsearch之CURL命令的PUT和POST对比相关推荐

  1. Elasticsearch之CURL命令的version控制

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

  2. ElasticSearch快速入门三(curl命令讲解)

    API测试工具_微博开放平台:https://open.weibo.com/tools/console# 感兴趣是可以使用这个工具玩一下restful接口调用,可以更形象的了解restful 下面我们 ...

  3. windows(64位)下使用curl命令

    2019独角兽企业重金招聘Python工程师标准>>> Curl命令可以通过命令行的方式,执行Http请求.在Elasticsearch中有使用的场景,因此这里研究下如何在windo ...

  4. windows curl命令详解

    概述 Curl命令可以通过命令行的方式,执行Http请求.在Elasticsearch中有使用的场景,因此这里研究下如何在windows下执行curl命令. 软件下载 下载地址:https://cur ...

  5. curl命令具体解释

    对于windows用户假设用Cygwin模拟unix环境的话,里面没有带curl命令,要自己装,所以建议用Gow来模拟,它已经自带了curl工具,安装后直接在cmd环境中用curl命令就可,由于路径已 ...

  6. 百度一 29 岁程序员因使用CURL命令“篡改数据”被判有期徒刑一年九个月,并没收所有违法所得

    整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 近日,中国裁判文书网公布了一起非法控制计算机信息系统.给赌博网站"大开方便之门"的案件,涉及金额达374万元 ...

  7. 最常用的CURL命令大全

    为什么80%的码农都做不了架构师?>>>    日期:2012-6-10  来源:GBin1.com cURL是 一个非常实用的命令行工具,可以有效的帮助你处理URL相关操作和数据传 ...

  8. curl 命令行下载工具使用方法小结

    获取curl curl 命令行下载工具 curl的官方网站为:    http://curl.haxx.se    官方下载页面为:http://curl.haxx.se/download.html ...

  9. linux curl 命令模拟 http get post 请求

    get post 提交的数据 地址 和步骤 需要用使用 burpsuite 先获取 再使用curl模拟请求 通过get方法请求: curl protocol://address:port/url?ar ...

最新文章

  1. mysql查看防火墙状态命令_Linux设置允许指定端口通过防火墙centos7
  2. ALV标准范例Demo汇总
  3. 怎么计算网站高峰期并发量和所需的带宽?
  4. angularjs学习曲线
  5. Oracle最新的Java 8更新破坏了您的工具-它是如何发生的?
  6. android复习第二天------布局
  7. win10修改时间同步服务器,解决win10时间服务器同步问题|重置win10时间服务配置...
  8. 【JAVA SE】第十三章 序列化与反序列化
  9. 无连接可靠传输_计算机网络-网络层和传输层
  10. 文件间调用变量(extern,include)[转]
  11. LINUX不能恢复式安装
  12. sizeof(std::string) 的大小
  13. 非香农类信息不等式_ICLR 2020 | 北大图灵班满分论文:基于计算约束下有用信息的信息论...
  14. 单机html游戏修改数据,星露谷物语存档修改图文教程 怎么修改游戏数据
  15. 金士顿 U盘群联 ps2251_60 量产
  16. oracle 中符号%3e,Oracle 数据类型
  17. 服务器报错 http error 503.the service is unavailable怎么解决
  18. 【UOJ 454】打雪仗(通信题)(分块)
  19. java爬虫工具xpath提取_爬虫 xpath (数据提取)
  20. win7虚拟机使用nat模式配置静态IP上网

热门文章

  1. 【整理】Linux驱动中,probe函数何时被调用
  2. WCF+Silverlight一个简单的RSS阅读器(二)
  3. SAP公司的一些大概介绍
  4. 徐科:做IC不外乎PPA,但需要成百上千的专家合作 投入数千万
  5. 通过eclipse调试MapReduce任务
  6. Swift - 表格图片加载优化(拖动表格时不加载,停止时只加载当前页图片)
  7. SQL SERVER 查看并结束某个进程
  8. 结课作业:云计算在物联网中的应用发展
  9. 磨刀不误砍柴功:App开发者必备之8大利器
  10. nginx strip模块优化页面