可扩展性(scalability)和可用性(availability)
custom token authentication
使用一个独一无二的标志,来标示每一次的数据请求。
这个标志有两种用法:1.它可以作为URI的 2.它可以加入到HTTP的请求头中。
@Path("/users/token={token}")
public class UsersResource {
@GET
@Produces("application/xml")
public String getXML(@PathParam("token") String token) {
if (AuthenticationService.authenticate(token)) {
return UserBO.getAllXML();
} else {
throw new WebApplicationException(401);
}
}
}
先检验URI中的标志——Token,如果token变量未通过验证,返回401错误,即未授权。
HTTP basic authentication
即在HTTP请求头中加入一个Authorization: Basic QWxhZGRpbjpvcGVulHNIc2FtZQ==域,就相当于一个证书。对于浏览器而言,会把证书放入缓存中,这样就不必每次都要输入用户名和密码。但这样会导致越权访问,此时由于存在缓存,所以Web Service很难区分请求是否授权。
而且用户名和密码是用Base64 encoding编码的,这个很容易破解,解决这个问题,我们可以用HTTPS(SSL)协议代替HTTP协议。
如果用浏览器访问但没有加入对应的证书,浏览器会出现一个对话框,要求你输入用户名和密码,当用户输入完后,浏览器会再次发送求情。浏览器对401错误会自动处理。
如果使用其他的客户端,则会收到一个401错误。
也可以在刚开始的时候就设置好HTTP请求头,这样就不用每次都输入证书了。
...
HttpClient client = new HttpClient();
client.getState().setCredentials(new AuthScope("www.restfuljava.com ",
443, "realm"), new UsernamePasswordCredentials("username",
"password"));
GetMethod get = new GetMethod("http://www.restfuljava.com/webservice
/users");
get.setDoAuthentication(true);
client.executeMethod(get);
...
不过,这样一来,该客户端就只能用于访问证书对应的网站。
OAuth认证方式。
允许第三方访问用户数据,只通过授权验证方式,即每次访问不需要提供用户名及密码。需要为该认证方式提供另外一个独立的Web Service。
如果不用这种方式,如果一个服务提供者想要别人来使用自己的服务,那就必须向使用者提供相应的证书。
OAuth和OpenID是不同的两种协议。OpenID是指,使用同一个证书,访问不同的网络应用。
性能
简单来说,RESTful web service的性能是由web框架决定的。
High availability意味着0或者最低的运行故障时间。对于一个复杂的web结构,达到0运行故障时间是不可能的。有时候我们不得不关掉整个系统,这是不可避免的。
对于如何减少系统故障运行时间最常用的方法就是,硬件冗余,即当一个机器出了问题,停止工作,另外一个机器会接替他的工作。
Scalability
分享到:
相关推荐
在现代的Web应用程序开发中,RESTful Web Service已经成为构建分布式系统和服务之间通信的重要方式。...在开发过程中,还需要注意错误处理、安全性(如认证、授权)以及性能优化等方面,以提供最佳的用户体验。
Java RESTful Web Service实战是Java开发领域中一个重要的实践教程,它主要涵盖了使用Java技术和RESTful架构风格来创建高效、可扩展的网络服务。REST(Representational State Transfer)是一种网络应用程序的设计...
在IT行业中,RESTful Web Service是一种广泛采用的网络应用程序接口(API)设计风格,它基于Representational State Transfer(表述性状态转移)原则。本教程将深入讲解如何使用Java语言来创建RESTful Web Service。...
安全是RESTful Web服务的重要组成部分,我们将讨论如何实现身份验证: - **HTTP Basic认证**:一种简单的认证机制,客户端将用户名和密码以Base64编码的形式发送到服务器。 - **其他认证方式**:除了Basic认证之外...
SOAP提供了一套完整的框架,包括错误处理、事务管理以及安全标准,如WS-Security、WS-ReliableMessaging等,确保了消息的可靠性和安全性。SOAP消息通常通过HTTP、SMTP等协议传递,并且支持远程过程调用(RPC)模式,...
# RESTful Web Service Primer ## 什么是REST? REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于客户端与服务器之间的交互模式。REST架构风格最初由Roy Fielding在其博士...
### RESTful Web Service Primer #### 一、REST简介 REST(Representational State Transfer)是一种用于设计网络应用程序的架构风格,最初由Roy Fielding在他的博士论文中提出。REST架构风格的核心理念是将网络上...
【Java Restful Web Service,edition2.代码】这个压缩包文件是关于使用Java开发RESTful Web服务的第二版源码,主要聚焦于JAX-RS 2.0规范的应用。RESTful Web服务是一种广泛用于构建分布式系统的服务架构风格,它...
总结来说,使用Jersey框架和Apache Tomcat服务器构建RESTful Web服务,不仅可以充分利用Java生态系统的强大功能,还能确保服务的扩展性、可维护性和高性能。通过使用Jersey的注解和API,开发者能够快速创建符合REST...
Jetty是一款轻量级、高性能的Java Servlet容器,而RestEasy是JAX-RS(Java API for RESTful Web Services)的一个实现,使得创建RESTful服务变得简单。通过将这两者集成,我们可以构建一个快速、灵活且易于维护的Web...
在本文中,我们将深入探讨如何使用SpringBoot框架与Jersey库整合来实现RESTful Web服务,并同时集成Spring MVC。这将使我们能够构建一个高效、灵活的后端系统,为客户端提供API接口。 首先,SpringBoot是Spring框架...
服务端可能基于ASP.NET或ASP.NET Core,这两个平台都支持创建高性能的Web服务。 2. **RESTful设计原则**:遵循REST(Representational State Transfer)原则,将业务逻辑抽象为资源,通过HTTP方法操作这些资源,如...
### 第九章:扩展 RESTful 服务(Web 服务性能) - **性能优化**:提供多种方法来提高 Web 服务的性能,包括缓存机制、异步编程等。 - **负载均衡**:介绍如何使用负载均衡器来分发请求,提高系统的可用性和响应...
CXF(Celtrix for eXtreme programming)是一个开源的全功能服务框架,被广泛用于构建和开发Web服务,尤其是RESTful Web服务。在现代开发中,RESTful风格因其简单性和易用性而成为一种流行的Web服务架构设计风格。...
在IT行业中,RESTful是一种广泛应用于Web服务设计的架构风格,它基于HTTP协议,使得客户端和服务器之间的交互变得...通过实际操作和修改这个Demo,你可以更深入地了解RESTful架构的精髓以及C#在Web服务开发中的应用。
Web Service 渗透测试是针对机构和组织公开的Web应用、外部IP地址以及Web Service进行的安全测试过程。随着Web Service的广泛应用,它已经成为现代软件架构的重要组成部分,然而,安全问题往往被忽视,导致严重安全...
9. **安全考虑**:为确保RESTful服务的安全性,可以考虑实现身份验证和授权。ASP.NET Core提供了多种认证和授权机制,如JWT(JSON Web Tokens)或OAuth2。 10. **性能优化**:可以通过缓存、响应压缩、负载均衡和...
**Spring 3 创建 RESTful Web Services 知识点详解** RESTful Web Services 是一种基于 Representational State Transfer(表述性状态转移)架构风格的 Web 应用设计模式,它强调资源的表述和状态转换,常用于构建...
《RESTful Web Services Cookbook》是一本深入探讨REST(Representational State Transfer)架构风格在Web服务中的应用实践的书籍。REST是一种广泛应用于Web服务的设计模式,它强调通过HTTP协议来实现客户端与服务器...