rest协议
❶ REST webservice与普通的servlet有什么不同
一:Web Service基础知识
一个最简单web服务就一个web页面等待请求与处理。更容易理解的方式是Web
Service可以把一个应用变成一个基本WEB方式的请求与处理的应用。常见的两种
Web Service处理方式为:
a. 基于WSDL/SOAP的方式
b. Rest方式
方式a是比较正统的,客户端调用必须先取得WSDL文件,然后生成调用的API才可
以使用。它不是我要说的重点,基本调用流程如下:
方式b是Rest方式,Rest的Web Service的设计原则是基于CRUD,其支持四种操作分
别为:
GET – 获取信息/请求信息内容,绝大多数浏览器获取信息时使用该方式。
POST – 增加信息内容,显示以前的信息内容,可以看作是insert操作
PUT – 更新信息内容,相当与update
DELETE – 删除信息内容可以看作是delete
Rest方式更加简单便捷,如果从设计原则上看HTTP协议本身已经是最Restful风格的
协议了HTTP协议很好的支持了CRUD的操作。正是因为如此,WEB2.0以来, 基于
Restful的Web Service越来越多的成为首选。
二:认识RestfulStyle
Rest的全称是可表述状态迁移(RepresentationalState Transfer), 可能从字面看有点奇怪
HTTP协议本身无状态协议,其保持连接通过设置请求头字段Connection: keep-alive与
设置过期时间来同时控制。其实Rest方式的WebService也是无状态的这样做的好处最少
有以下两个:
1. 更好的负载平衡,减轻服务器端负担
2. 更快的客户端响应,减少不必要的状态检查。
Restful 风格的兴起,要感谢互联网巨头Google,Facebook等他们提供大量基于Restful
风格的web服务,从谷歌地图到天气预报到翻译,国内的互联网巨头腾讯,新浪微博也
发布自己的web服务,吸引更多的开发者加入他们的阵营。Rest除了满足基本的CRUD
设计原则之外,还要遵循如下约定:
1. 资源操作可以通过描述来实现即Representation
2. 消息本身是无状态与自我描述(传输支持XML与JSON)
3. 可以发送与接受多个Representation
Rest风格(Restful Style)架构原则:
1. 客户服务器方式
2. 无状态协议传输
3. 支持缓存
4. 统一接口定义
5. 分层系统设计
这样发布了Rest的Web服务API其改变不会影响到客户端程序与实现。如果你的系统
不能适用Rest风格的架构怎么办,重新设计一个新的架构,扩展Rest风格架构。但是
这个世界上绝大数的系统与应用要做的事情就是CRUD。
三. Rest与HTTP
上面已经提到过HTTP协议可能是最Rest风格的协议,而HTTP1.1协议设计的一个原则
就要实现Rest风格。所以毫无疑问HTTP的GET, POST, PUT, DELETE就是最好的证明
但是Rest风格是否可以应用到其它一些协议与系统设计中嘛,答案是肯定的,一个最好
的例子证明就POP3协议, POP3支持Fetch 数据记录,查询记录,更新记录与删除记录
(记录代表email)多么完美的Rest风格协议。
已经存在的HTTP协议应用:
1. 浏览器客户端(你天天上网,不是IE就是Chrome,或者其它浏览器,你懂的)
2. 即时消息通信,MSN/Skype支持
3. 各种内容管理系统
4. 博客系统与微博客户端应用。
5. 你可以来补充/?
Rest消息详解:
1. 跟我们现在知道的HTTP URI没有什么分别,Google静态地图就是一个很好的例子
只是URL加上不同参数就可以fetch不同的地图内容。
2. 可以支持任何类型的数据传输,这点与基于XML与JSON的信息传输有点同,后者
更希望传输文本内容与结构化文本内容
3. SOAP与XML-RPC有严格的消息格式限制,rest没有消息格式要求。客户端调用方
便啊!
Rest风格Web服务的好处,显然易见一个好处就是简化了客户端的调用,不再像WSDL
那般麻烦。从而减低第三方开发者的学习成本,减短了学习曲线。有利于服务推广与普
及,吸引更多用户数量从而带来潜在的商业利益。
在软件即服务(SaaS - Software As A Service)与软件即平台(PasS-Platform
As A Service)中有着重要的地位与应用。这正是那些互联网巨头对Rest风
格感兴趣的原因之一。
四:Rest风格架构
Rest风格可以用在非WEB的系统设计与架构中嘛/?打答案是肯定的,Rest可以用在任何
系统设计中,从本质是上Rest不是一种技术,而是一种架构原则,当然可以用来架构非
WEB的系统。系统越大风格越要象Rest方式如此才是一个成功的架构。
WEB中的面向对象编程
ExtJS, KendoUI(基于JQuery)等JavaScript库已经支持非常方便的从URL中fetch内容
更新数据,前端设计越来越趋向于更加细化的分层设计,而不仅仅是MVC。客户端
程序员应该更多的专注前台用户体验,由于这些框架良好的封装与可扩展行,
JavaScript等语言编程越来越多的引入面向对象的概念与实践。可以好不夸张的说如
今的JavaScript编程与十年之前已经有本质不同。
❷ 需要连服务器的手机app一般用什么协议Tcp/ip还是REST API
手机要考虑到移动网络下的兼容性(CMWAP…我不确定还有没有这个东西存在),一般还是建议用HTTP协议,这样方便使用代理服务器进行连接(比如说,内网wifi只允许通过HTTP代理上外网这种极端情况)
至于在HTTP协议上用什么方式的RPC协议,现在一般是用REST了。虽然个人觉得还是SOAP省事…自动代码生成…
❸ bbo rest 基于什么协议
bbo支持多种远程调用方式,例如bbo RPC(二进制序列化 + tcp协议)、http invoker(二进制序列化 + http协议,至少在开源版本没发现对文本序列化的支持)、hessian(二进制序列化 + http协议)、WebServices (文本序列化 + http协议)等等,但缺乏对当今特别流行的REST风格远程调用(文本序列化 + http协议)的支持。
有鉴于此,我们基于标准的Java REST API——JAX-RS 2.0(Java API for RESTful Web Services的简写),为bbo提供了接近透明的REST调用支持。由于完全兼容Java标准API,所以为bbo开发的所有REST服务,未来脱离bbo或者任何特定的REST底层实现一般也可以正常运行。
特别值得指出的是,我们并不需要完全严格遵守REST的原始定义和架构风格。即使著名的Twitter REST API也会根据情况做适度调整,而不是机械的遵守原始的REST风格。
附注:我们将这个功能称之为REST风格的远程调用,即RESTful Remoting(抽象的远程处理或者调用),而不是叫RESTful RPC(具体的远程“过程”调用),是因为REST和RPC本身可以被认为是两种不同的风格。在bbo的REST实现中,可以说有两个面向,其一是提供或消费正常的REST服务,其二是将REST作为bbo RPC体系中一种协议实现,而RESTful Remoting同时涵盖了这个面向。
❹ 移动互联网的协议中,下面_______是用于数据表示的协议。 A.HTTP B.REST C.TCP/IP D.HTML
移动互联网的协议中,html协议是用于数据表示的
❺ 需要连服务器的手机app一般用什么协议Tcp/ip还是REST API
在这个模型中
rest api是属于第七层:应用层 的协议
TCP/IP是属于第四层专:传输属层 的协议
在网络传输过程中,rest api数据包是作为普通数据被封装在TCP/IP数据包里传输的(前提是:这里的传输层协议用的是TCP/IP而不是UDP或者其他)。
❻ restful和http的区别
REST 定义了一组体系架构原则,您可以根据这些,包括使用不同语言编写的客户端如何通过 HTTP 处理和传输资源状态。所以在事实上,REST 对 Web的影响非常大,由于其使用相当方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计。在多年以后的今天,REST的主要框架已经开始雨后春笋般的出现。
个人理解:
(一) 首先REST只是一种风格,不是一种标准
(二) REST是以资源为中心的
(三) REST充分利用或者说极端依赖HTTP协议
一.对于今天正在吸引如此多注意力的最纯粹形式的 REST Web 服务,其具体实现应该遵循以下基本设计原则:
1.1.显式地使用不同的 HTTP 请求方法
1.2.无状态
1.3.公开目录结构式的 URI(通过逻辑URI定位资源)。
1.1.显式地使用不同的 HTTP 请求方法
我们在 Web 应用中处理来自客户端的请求时,通常只考虑 GET 和 POST 这两种 HTTP 请求方法。实际上,HTTP 还有 HEAD、PUT、DELETE 等请求方法。而在 REST 架构中,用不同的 HTTP 请求方法来处理对资源的 CRUD(创建、读取、更新和删除)操作:
若要在服务器上创建资源,应该使用 POST 方法。
若要检索某个资源,应该使用 GET 方法。
若要更改资源状态或对其进行更新,应该使用 PUT 方法。
若要删除某个资源,应该使用 DELETE 方法。
❼ 什么是REST协议,是否是标准接口还是华为私有协议
因为trunk链路封装协议有2种一个是802.1Q这个是公共协议,就是说所有设备都用的协议专,还有一属种就是CIsco私有的ISL协议。。因为在路由器上配单臂路由也是走VLAN信息,VLAN只能走Trunk链路。。而子接口是虚拟的,所有有必要对子接口进行封装协议,这样双方才能了解自己用的都是那种协议。
❽ java实现 HTTP协议的类REST调用方式问题
你可以用下httpClient.jar 查阅下相关API
❾ 需要连服务器的手机app一般用什么协议Tcp/ip还是REST API
安装了网卡后,一般需要对其IP地址进行设置才可以连接到网络。那么如何设置网卡的IP地址,又如何得知目前网卡的IP地址呢?下面我们以Windows XP和Windows 98为例分别进行说明。 在Windows XP中,可以通过控制面板中的网络连接进行IP地址的设置(Windows 2000的设置与XP基本相同,可以参考下面的说明进行设置):单击开始—〉设置—〉控制面板(如果是使用Windows XP风格的开始菜单则是在开始中),再双击网络连接,这里如果是使用Windows XP的分类视图则单击左面控制面板栏目中的切换到经典视图,或者单击请参阅中的其他控制面板选项即可找到。 双击网络连接,再用右键单击本地连接(您要进行设置的那个连接)单击属性,再选择Internet协议,单击属性。 如果局域网内有DHCP服务器(比如使用了我们的路由器产品或者TED8620 ADSL),那么就可以设置为自动获得IP地址和DNS。如果您需要使用指定的IP地址,那么请选择使用下面的IP地址,再输入要指定的IP地址,子网掩码,默认网关,DNS等(如果您不清楚可以询问网络管理员或者ISP)。如果使用我们的路由产品,就设置为与路由器地址同一网段(IP地址前3位相同,最后一段不同并且在1-254范围内),子网掩码为255.255.255.0,默认网关地址为路由器的IP地址。例如您使用TEI6606路由器,那么您电脑的IP地址就可以设置为:192.168.8.2,子网掩码255.255.255.0,默认网关192.168.8.1,DNS设为ISP提供的DNS地址。 要查看Windows XP或Windows 2000目前的IP地址,可以通过ipconfig命令实现。首先需要进入命令提示符:单击开始—〉程序—〉附件—〉命令提示符,在窗口中输入ipconfig按回车键即可看到目前各个连接的IP地址,默认网关等项目,如果需要更详细的信息(比如DNS地址,MAC地址),可以使用ipconfig /all。 如果要修复连接可以使用ipconfig /release释放IP地址,再使用ipconfig /renew更新即可。如果使用Windows XP,还有更简单的方法来查看IP地址以及修复连接:以右键单击本地连接选择状态,再选择支持即可看到;单击修复即可完成修复动作。 下面再看一下Windows 98(Windows ME基本相同)的设置:首先右键单击网上邻居选择属性,或者进入控制面板双击网络,再选择TCP/IP(对应您的相应网卡的),单击属性: 我们主要设置的是IP地址和网关,DNS:其中IP地址设置与Windows XP类似,而网关和DNS设置是在另外的页面:在网关中可以添加网关地址,在DNS配置中可以添加DNS地址,其中的主机选项中输入任意的与局域网内计算机名不同的字符即可。 在Windows 98/ME中要查看目前的IP地址需要用到winipcfg,在开始—〉运行中输入winipcfg单击确定,在适配器栏中单击右面的小箭头来选择您使用的网卡,即可看到当前网卡的IP地址等信息,如果单击详细信息就更容易选择网卡,也可以看到更多信息。如果要修复可以先单击释放,再单击更新即可。
❿ http的REST用的是什么协议
了解以下信息:
a、这个接口是get方式还是post方式。还是两者都行
b、这个接口接受点什么入参
如果是get方式,采用下面
web_url("getname",
"URL=http://192.168.106.193/shop/business/QueryMdseDetailById.action?param1=something¶m2=something",
"Resource=0",
"RecContentType=text/html",
"Mode=HTML",
LAST);
如果是post方式,采用下面
web_submit_data("postname",
"Action=http://192.168.106.193/shop/business/QueryMdseDetailById.action",
"Method=POST",
"RecContentType=text/html",
"Mode=HTML",
ITEMDATA,
"Name=param1", "Value=something", ENDITEM,
"Name=param2", "Value=something", ENDITEM,
LAST);
上面的例子有两个参数,参数多的话往后面加就好了。按实际要求进行参数化。你应该知道怎么做才对。