架构真题
REST中部分更新使用的HTTP方法是()。
A.POST
B.PUT
C.PATCH
D.PART
古德解析
该题目涉及的知识点主要分布在书中的第15章“面向服务架构设计理论与实践”,其中详细阐述了RESTful API的设计原则和HTTP方法的正确使用。此外,第12章“信息系统架构设计理论与实践”也间接涉及Web服务通信协议,如REST和SOAP的对比,但核心内容仍以第15章为主。第15章明确了REST作为一种基于资源的架构风格,强调使用标准HTTP方法对资源进行状态转移,其中部分更新的处理是REST设计中的一个关键场景。书中中多次提到RESTful服务应遵循HTTP协议规范,确保操作的幂等性和安全性,这对于理解部分更新的方法选择至关重要。
对于选项A.POST,该方法在HTTP规范中主要用于创建新资源或处理非幂等操作。在REST上下文中,POST通常用于向服务器提交数据以创建新资源,而不适用于更新现有资源。尽管POST可以用于更新,但它不符合REST原则中对幂等性的要求,因为多次调用POST可能导致重复创建资源,而非更新。书中第15章在讨论REST约束时指出,POST应限于创建操作,而更新操作应使用更专门的方法,以确保接口的清晰性和可预测性。
选项B.PUT在HTTP中用于替换整个资源,要求客户端提供资源的完整表示。在REST架构中,PUT被设计为幂等操作,适用于全量更新,即客户端必须发送资源的所有字段,即使只修改部分内容。书中第15章强调,PUT方法应谨慎使用,因为它可能覆盖资源未意图修改的部分,导致数据不一致。因此,PUT不适合部分更新场景,这与REST的精细化管理原则相悖。
选项C.PATCH是HTTP规范中专门为部分更新设计的方法。它允许客户端仅发送需要修改的字段,而不必提供完整资源表示。在REST架构中,PATCH符合资源部分更新的需求,支持增量修改,并保持操作的语义清晰。书中第15章在阐述RESTful服务的扩展性时,隐含了PATCH的适用性,指出现代Web API应利用PATCH来处理局部变更,以提高效率和减少网络开销。PATCH的幂等性虽不如PUT严格,但在部分更新上下文中被广泛接受为最佳实践。
选项D.PART并非标准HTTP方法,HTTP协议规范中未定义该方法。在REST设计中,使用非标准方法会破坏接口的统一性和互操作性,导致客户端和服务器之间的兼容性问题。书中第15章在讨论REST约束时,强调应严格遵循HTTP标准方法,以确保系统的可预测性和可维护性。因此,PART作为无效选项,不应在REST上下文中考虑。
正确答案是C.PATCH。
程序员古德,专注于科技互联网领域,《软考架构论文黑金小册》系列作者,详见头条个人主页!