【问题标题】:Sending JSON requests using content-type text/plain使用内容类型 text/plain 发送 JSON 请求
【发布时间】:2015-06-08 00:11:19
【问题描述】:

我看到有几个相关的帖子,但没有一个真正回答我的问题。

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

问题 1 - 如果客户端发送了一个有效的 JSON 请求,但将 content-type 设置为 text/plain,中间层是否会因为 content-type 而不将请求传递给请求处理程序? ?

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

【问题讨论】:

    标签: json rest http content-type


    【解决方案1】:
    1. 所有application/json 内容也是有效的text/plain,所以我看不出中间层验证如何能捕捉到这一点。它拒绝请求是没有意义的,除非它知道请求语义,这应该是请求处理程序的责任。相反的情况是有意义的,在发送纯文本有效负载时失败,该负载是带有application/json 的无效 JSON 文档。

    2. 中间层可能会验证带有application/json 的负载是否有效,但此时担心性能损失是没有意义的。如果在分析您的应用程序后您意识到此验证是一个瓶颈,那么担心它是有效的。

    【讨论】:

      猜你喜欢
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-28
      相关资源
      最近更新 更多