假设我的服务器公开了一个基于HTTP的API,该API使用RFC 5789引入的PATCH
方法。企业防火墙,代理,缓存,家长控制过滤器等背后的客户端(浏览器或其他)是否可能会遇到使用此方法的任何问题?如果是这样,这有多大可能?
鉴于PATCH
不是原始HTTP规范的一部分,但后来又介绍过,我可以想象一些程序会因为"无效"而拒绝这些请求。方法。另一方面,我希望这样的软件只是通过所有内容,并且最多对某些HTTP方法应用一些限制,例如POST
(例如,不缓存其结果)。
请注意,我不会询问服务器端或浏览器中的PATCH
支持,而只讨论客户端和服务器之间的组件,我既不知道也不控制。此外,PATCH
本身对API是一个好主意的问题超出了这个问题的范围。
答案 0 :(得分:2)
这个问题的答案是一个不断变化的目标。随着时间的推移和PATCH变得或多或少变得流行,网络中的系统可能支持也可能不支持。
通常,只关心HTTP谓词的网络实体将是OSI Level 3(IP)和更高版本的设备(防火墙,代理)。其中一些是“愚蠢的”。从某种意义上说,他们不检查OSI 4级(TCP)。其他人是聪明的'并且可以执行协议级执行。例如,它们将阻止您打开端口80并发送STMP消息。
即使设备是“智能”,它仍然可以配置为允许或不允许更多不常见的HTTP谓词,如PATCH。所以现在我们必须考虑托管设备的组织的安全状况。像星巴克和机场这样开放无线网络的地方可能会非常严苛并锁定安全性。与某些公司相同,特别是如果他们处理敏感数据(财务,个人信息)。
结果是,根据您的用户的受众特征,如果您没有回退机制,PATCH可能会出现问题。我认为以下领域的受限用户更有可能遇到问题:敏感的公司环境,学校,军事组织。