网络架构与API设计:原理、挑战与选择
1. 按需代码的风险与局限
按需代码(Code on demand)是指服务器除了发送数据外,还可以发送可执行代码,这些代码在客户端请求时会自动部署,若代码发生更改也会自动重新部署。然而,按需代码存在显著的安全风险。如果提供按需代码的服务器被攻破,其客户端也可能受到威胁。
在Web环境中,按需代码之所以可行,是因为Web浏览器会在沙箱中运行下载的JavaScript代码。但即便如此,按需代码仍会引发浏览器安全问题,如跨站脚本攻击。自动化客户端通常不在沙箱中运行,它们需要访问本地文件系统、数据库和其他系统资源,因此恶意的按需代码可能会对系统造成严重破坏。
在各方相互信任的环境(如公司内部)中,使用按需代码进行部署可能有一定意义。但在这种环境下,RESTful架构的优势并不明显,而且对于受信任的服务器向客户端部署软件,还有其他成熟的方法。因此,短期内按需代码不太可能取代可下载的客户端。对于支持超媒体的API而言,可下载客户端在API发生变化时更不容易出现故障,从而可以在不依赖按需代码的情况下正常运行。
2. Web成功的架构特性与约束
2.1 Web的架构特性
Web的成功得益于以下四个架构特性:
- 低进入门槛 :学习使用Web和构建网站都很容易。
- 可扩展性 :单个网站可以在一夜之间进行更改,而不会影响其客户端。在几十年的发展过程中,整个Web发生了巨大变化,但底层技术的变化相对较小。
- 分布式超媒体 :关于客户端如何处理服务器
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



