2015-04-02 101 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的有效載荷是否有效,但擔心此時的性能損失毫無意義。如果在分析你的應用程序後,你會發現這個驗證是一個瓶頸,那麼有必要擔心它。

相關問題