一.什么是restful
api:application programming interface 应用程序接口。
xml:可扩展标记语言。一种程序与程序之间传输数据的标记语言。
1.xml文件格式比较庞大,传输占用宽带。
2.服务端和客户端都要花费大量的代码去解析。
3.不同浏览器之间xml解析方式不一致,需要重复并写很多代码,代码多不宜维护。
JSON:javascript object notation 轻量级数据交换格式。
1.数据格式简单,易读写。
2.格式是压缩的,占用的宽带比较小。
3.易于解析。
4.支持很多中语言,包括c、c++、java、python、php
5.json数据直接能为服务端的代码(程序)使用,能简化服务端以及客户端的代码开发量。
RESTFul:Representational State Transfer 表现层状态转化,,,,,apache第一任主席Roy Fielding2000在他的博士论文中提到过。
表现层:资源(指网络上的信息:文本、图片、电影)的表现层,每个资源在网络上都有一个标识(url)。每个资源仅代表一个信息,该信息有很多种表现形式。如一段文本可以用txt的格式去表现,也可html/json/xml,图片有jpg ,png,gif等格式。
状态转化:平时访问网站就是客户端跟服务端的一种互动过程。有了互动,数据的状态肯定会发生改变,elasticsearch默认走http协议,而http协议是一种无状态协议,五状态就是指服务端它不会去记客户端的所有信息和操作,数据的状态只保存在服务端,一次客户端想要操作服务器就必须要通过某些手段才能让服务器发生状态转移,而这种转化需要建立在表现层之上。手段:get用来获取资源,post用来新建资源(也可以用于更新资源),put用来更新资源,delete用来删除资源,这些手段都是http协议规定的。
如果一套开源软件支持RESTFul风格,那么我们只要学习它的API接口,就能很好的去操作和使用这套软件。因为我们通过这接口,第一能看出这套软件有什么资源,
看出有什么资源就能大概了解它是有什么组成的。 第二,通过这四种方式我们就操作做这个软件,对软件的资源进行增删改查。
二.curl命令详解(linux自带该命令)
curl以命令的方式来执行http协议的请求的工具。可以通过curl操作http的get/post/put/delete方法。
curl --help 查看参数
例子:
通过curl访问网页:curl www.baidu.com
保存网页:curl -o baidu.html www.baidu.com
显示http reponse的头信息:curl -i www.baidu.com
显示一次http请求的通信过程:curl -v www.baidu.com
curl --trace output.txt www.baidu.com
curl执行ger/post/put/delete操作:curl -X GET/POST/PUT/DELETE www.example.com
三.elasticsearch api文档查看
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html