2015-04-02 131 views
0

我看到有几个相关的帖子,但没有真正回答我的问题。使用内容类型的文本发送JSON请求/ plain

具体来说,假设请求处理程序前面有一些中间层(例如Web服务器,Spring框架,Jersey框架等)。请求处理程序明确宣布它期望一个JSON请求。

问题1 - 如果客户端发送有效的JSON请求,但将content-type设置为text/plain,那么对于中间层而言,由于content-类型?

问题2 - 如果客户端发送有效的JSON请求并使用content-type application/json,并且请求处理程序宣布它将自行解析JSON请求。我可以假设中间层的一些真实世界的实现在将请求传递给请求处理程序之前仍然会验证请求吗? (换句话说 - 它是有效的假设,应用/ JSON可能会导致性能损失?)

回答

1
  1. 所有application/json内容也有效text/plain,所以我没有看到一个中间层的验证如何能赶上。除非它知道被认为是请求处理程序责任的请求语义,否则它拒绝请求是没有意义的。相反的情况是有道理的,在发送无效的JSON文档(纯文本有效内容为application/json)时发生故障。

  2. 中间层可验证application/json的有效载荷是否有效,但担心此时的性能损失毫无意义。如果在分析你的应用程序后,你会发现这个验证是一个瓶颈,那么有必要担心它。

相关问题