Elasticsearch

RESTFul 以及CURL介绍

2018-04-21  本文已影响12人  菜花_Q

什么是RESTFul

Elasticsearch 是完全基于RESTFul设计风格的全文搜索引擎,包括我们接触的很多开源软件,其实很多都是基于RESTFul这种风格的。现在很流行的开源软件(架构),比如说Openstack,它也是RESTFul风格的。那么,什么是RESTFul

API:Application Programming Interface的缩写,中文意思就是应用程序接口,作用就是让应用程序的使用人员无需访问源码或者(了解)内部的工作机制,就能通过藏歌接口去访问这个应用程序的数据,或者是修改这个数据,API的出现是为了让应用程序更加方便的去调用和扩展,如果你想了解一套应用程序如何使用,首先得看他的API,通过API程序员或者是运维人员,就能更加方便的通过命令或者程序去调用和使用它。

使用接口其实就是通过这个接口,获取或者修改一些数据。那么数据是通过什么形式去展现的呢?

做过开发的就知道,在几年前,如果你要从一个程序里获取数据放到另外一个程序里,用的就是XML,

XML:可扩展标记语言,是一种程序与程序之间传输数据的标记语言,随着互联网技术的不断发展,XML慢慢开始就废弃,随之替代它的是另外一种更方便简洁的数据形式:JSON.

XML为什么会被人们慢慢丢弃呢?

第一点:XML文件格式比较庞大、比较复杂,传输占用带宽;

第二点:服务端和客户端都要花费大量的代码去解析XML,解析XML需要花费资源和时间

第三点:不同浏览器之间解析XML的方式不一样,需要重复并写很多代码,代码多,不容易维护


JSON:英文 JavaScript object notation 的缩写,他是一种新型的轻量级数据交换格式

JSON的优点:

第一点:数据格式比较简单,易于阅读,易于读写

第二点:格式是压缩的,占用带宽比较小

第三点:易于解析

第四点:支持很多种语言,包括C,C++,JAVA,PERL,PHP,Python...(当前流行语言都支持)

第五点:JSON数据直接能为服务端的代码(程序)使用,能简化服务端以及客户端的代码开发量

XML和JSON对比

随着JSON使用的人越来越多,大家都希望遵循一种风格去设计这个程序,那么RESTFul这种风格应运而生

RESTFul具体含义:

  英文Representational State Transfer缩写,中文意思是“表现层状态转化”,从两个方面理解,第一个是“表现层”,第二个是“状态转化”,表现层是什么意思呢?它指的是“资源的表现层”,那么这里的资源就是指网络上的信息,比如说,一段文本,一张图片,一部电影什么的。那么每一个资源它在网络上都有一个标识,你可以理解为就是一个ID,每一个资源都有一个ID去表示它,这个ID我们一般叫做URI(Uniform Resource Identifier,统一资源标识符),当我们给了这个资源一个地址后,比如我们所说的URL(Uniform Resource Locator,统一资源定位符),那么这个资源就能被访问到了。

每个资源仅代表一个信息,这个信息可以有很多种表现形式,比如说一段文本,我们可以用TXT的形式去表现,也可以用html去表现,或者是用xml,或者是用json,这些都可以,图片都一样,有jpg格式,有png格式的,甚至还有gif格式的。资源的表现形式有很多种,我们把资源具体呈现出来的这种形式叫做表现层

我们平时访问一个网站,其实就是客户端跟服务端的一种互动过程,有了互动,数据的状态肯定会发生改变,Elasticsearch默认走的是HTTP协议,HTTP协议是一种无状态的协议,无状态就是指服务端它不会去记客户端的所有信息和操作,数据的状态它指保存在服务端,因此,如果客户端想要操作服务器,必须要通过某些手段,才能让服务器发生状态转化。而这种转化需要建立在表现层之上的。主要有以下几种手段:

GET:用来获取资源

POST:用来新建资源(也可用于更新资源)

PUT:用来更新资源

DELETE:用来删除资源

如果一套开源软件支持RESTFul风格,只要学习它的API接口,就能很好的去操作和使用这套软件了,通过接口,能看出这套软件有什么资源,了解它是由什么组成的,第二点,通过这四个HTTP方法我们就能操作这个软件。一个软件的api设计的合理,我们完全可以用这四个方法对这个软件的资源进行增删改查,Elasticsearch完完全全基于RESTFul风格。


CURL命令的讲解

以命令的方式执行HTTP协议的请求的工具

可以通过CURL操作HTTP的GET/POST/PUT/DELETE方法

文档(找他要)

CURL相关操作

    访问一个网页

        curl www.baidu.com

    显示http response的头信息

        curl -i www.baidu.com

    显示一次http请求的通信过程

        curl -v www.baidu.com

        curl --trace output.txt www.baidu.com

    CURL执行GET/POST/PUT/DELETE操作:

        curl -X GET/POST/PUT/DELETE www.example.com

通过CURL,可以完成,比如说发送表单信息、文件上传、分段下载、模拟登陆,理论上只要你在浏览器上能操作的HTTP请求他就能操作

Elasticsearch API文档查看

Document APIs | Elasticsearch Reference [6.2] | Elastic

上一篇下一篇

猜你喜欢

热点阅读