我需要开发基于REST的API,它可以接受二进制或base64编码的内容,也可能接受其他内容。它必须要求识别文件的编码;否则它被假定为二进制。我不想根据API的内容自动猜测。
我的第一个倾向是使用Content-Type
,但base64
并不是众所周知的内容类型之一 - 这是有道理的,因为它不是真正的类型,而是编码。< / p>
阅读各种RFC规范,可以认为Content-Transfer-Encoding
标头是一个合适的位置,用于指示请求主体的内容是编码为base64还是二进制编码。但是,我认为这不合适,因为它主要用于SMTP协议,它们限制为7位。
然后有Content-Encoding
或Transfer-Encoding
,但我没有看到base64
作为该标题的众所周知的值,因为这两个标题更多地与压缩内容而不是指示是否已应用base64编码。
我倾向于认为使用自定义标题可能是最安全的,因为不会违反任何现有的规范,但是想看看SO的好人是否可以提出一个好的&amp;符合RFC的明确答案。