前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原 REST - Representati

原 REST - Representati

作者头像
魂祭心
发布2018-05-17 16:08:14
1.1K0
发布2018-05-17 16:08:14
举报
文章被收录于专栏:魂祭心

REST并非是标准而是一种再互联网环境下开发提供服务的方法规范。REST 遵循 web 应用程序的体系结构风格,用户通过类似于选择翻页链接去往下一页的方式访问web应用程序。REST基于唯一URI标识的资源。

只要服务遵从定义的标准或特性,我们可以将这个服务称为 rest。REST 并不与任何特定的平台联系在一起, 当前在Web上使用 HTTP 完成的。

REST基础特征

客户端

关注点分离是将用户界面与数据存储分离的原则。这使得程序的用户界面能够移植到其他的平台,并通过简化服务器组件来提高可伸缩性。

无状态

每个发向服务器的请求都应该带有理解完成请求所需的全部信息

可缓存

返回的数据能够缓存以便于用户再其他时间调用,这能够提升性能并且减少网络通信。

分层系统

代理服务器或缓存服务器等中间服务器可用于提高性能或引入安全性。

统一接口

统一的接口 (如 HTTP HTTP GET, POST, DELETE, PUT) 用于访问资源。

一个RESTful定位web系统有下列特征:

URI

统一资源标识符-这是互联网上资源的唯一标记。web上的每个资源都有这样一个唯一标识符-通用标识符 (例如, URL)。所有的web浏览器,服务器,应用都能理解这个标识符,这使得人们能够再互联网上无障碍的连接交换信息。

MIME Type

例如:XML, HTML, and JSON.

HTTP Methods

HTTP创造了一种与web上的资源进行通信的标准方式。获取、放置、删除、张贴是访问资源的一些常用方法。

  • GET 用特定的表示方式请求资源.(并非局限于http的get/set等等)
  • PUT 用特定的表示方式更新资源.
  • PUT 删除指定的资源.
  • PUT 创建一个新资源.

设计RESTful服务

设计RESTful服务的第一步是确定需要公开的资源,然后是把这些资源映射到url。我们不应该局限在应用的方法设计上面,而是应该致力于设计资源的url。有许多可以和REST配合使用的数据格式,xml是最简单也是用的最多的。但是json也常常用到。

.NET 4 / REST / WCF

WCF并非仅仅能用来否剑SOAP服务,他是一个具有通用编程模型并且完全基于插件的通信基础框架。WCF运行时的基础工作是监听处理来自网络位置的消息,并将他们传递给应用程序(服务),使用WCF开发REST应用程序是一项简单的任务。微软提供了一个用来创建新项目的rest模板,它能够在创建除一个resst的基础结构。

安全性

如果您查看上述描述, 您将注意到这个缺陷, 此服务没有内置任何安全方面。但是, 当我们构建服务公开端点时, 应该注意安全问题。rest风格的服务只http端点, 因此使用 http (如 HTTPS、证书) 实现的所有安全方面也可以用 rest 实现。

有两种类型的托管服务、自寄宿web服务和与应用程序服务器(如 IIS)承载的 web 服务。自寄宿web服务中, 大部分的安全方面都应该在代码中得到注意;另一方面, 在 iis 中托管时, iis中设置会处理安全问题。

自寄宿的安全性

开放口的安全性由WebHttpBinding的安全属性设置。安全属性的类型为WebHttpSecurity,用于确定绑定所需的安全模式以及客户端凭据类型。WebHttpSecurity有两个属性: Mode 类型 WebSecurityHttpMode)和Transport (类型为 HttpTransportSecurity)。可使用WebHttpSecurityMode 指定的安全级别有三:

  • None
  • Transport
  • TransportCredentialOnly1. 这里是列表文本

类型为HttpTransportSecurity的WebHttpBinding.Security.Transport有助于对客户端进行身份验证。它有以下三属性:

  • ClientCredentialType (of type HttpClientCredentialType)
  • ProxyCredentialType (of type HttpProxyCredentialType)
  • Releam (String)

HttpClientCredentialType的值可以是下列任一项: None, Basic, Digest, NTLM, Windows, Certificate.

在 IIS 上部署的服务的安全性

在IIS上承载终结点时, 使用web.config文件进行配置,可以对运行服务的虚拟目录进行配置。我们需要知道客户机配置和虚拟目录配置。

授权

一旦经过验证,下一步就是授权客户端他们能做什么,他们不能做什么。

1.模拟: 通过模拟客户端, 授权被委派给另一个层。例如, 当客户端试图将数据插入或更新到 sql server 数据库中时, 如果客户端没有权限, sql server 将引发异常, 这可能会冒泡回客户端。

2.基于角色: 通过限制对某些 Windows 用户或组的操作的访问来实现授权。

优点

  • 与其他风格的服务相比,REST 风格提供的服务更易于使用, 这意味着消费者的学习曲线更低。
  • 服务的 URI 缓存。
  • 组件可以独立部署。
  • 轻量级 (相对使用 WSDL 使 soap 协议成为复杂服务的 soap)。
  • 简单客户端

缺点

从开发者角度来说主要缺点是没有主数据。因而需要料及其中的实现细节。从安全性的角度来说,RESTful服务依赖于HTT的安全性。

适于使用的情况

当我们计划设计一个专门在web上使用的应用程序时, 或者当我们需要快速客户端集成时, 可以使用REST。

不适合使用

在设计面向服务的体系结构的应用时, 它互联了许多系统并使用了许多传输通道, 所以最好使用 SOAP。

http://www.linkedin.com/pulse/rest-representational-state-transfer-madan-kumar

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • REST基础特征
  • 客户端
  • 无状态
  • 可缓存
  • 分层系统
  • 统一接口
  • 一个RESTful定位web系统有下列特征:
  • URI
  • MIME Type
  • HTTP Methods
  • 设计RESTful服务
  • .NET 4 / REST / WCF
  • 安全性
  • 自寄宿的安全性
  • 在 IIS 上部署的服务的安全性
  • 授权
  • 优点
  • 缺点
  • 适于使用的情况
  • 不适合使用
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档