簡體   English   中英

在Http Status Code 404上返回附加值的最佳方法

[英]Best way to return added value on Http Status Code 404

有時我會在服務器級別返回一些額外的信息以及HTTP 404

例如,與其返回404 ,不如讓我的客戶困惑路由是否正確,它還會收到類似

標識符“ abc”未知

我通常將內容類型設置為text/plain然后在Content返回一些文本

另一種選擇是改為設置ReasonPhrase

最好的方式/慣例是哪一種? 設置Content或設置ReasonPhrase

錯誤消息應放在響應正文( Content )中,而不是響應Reason Phrase

根據RFC 2616

原因短語旨在提供狀態代碼的簡短文字說明...不需要客戶端檢查或顯示原因短語。

一些解釋:

  1. 原因短語是簡短狀態代碼 文本描述,它應描述狀態代碼本身,而不是自定義錯誤消息。 如果自定義錯誤消息很長,或者消息具有JSON結構,則使用Reason-Phrase肯定會違反規范。
  2. 如規范所示,客戶端(瀏覽器)不需要檢查原因短語,這意味着某些時候某些瀏覽器可能會忽略原因短語。

您可以使用自定義錯誤響應並覆蓋404和您要在此處訪問的任何其他錯誤Spring MVC:如何返回自定義404錯誤頁面?

創建一個視圖並在app / Exception / Handler.php中設置以下代碼:

/ *將異常呈現給響應。 * * @param \\ Illuminate \\ Http \\ Request $請求* @param \\ Exception $ e * @return \\ Illuminate \\ Http \\ Response

* /

公共函數render($ request,異常$ e)

{

if($e instanceof NotFoundHttpException)

{

    return response()->view('missing', [], 404);

}

return parent::render($request, $e);

}

設置此用法以使其正常工作:

使用Symfony \\ Component \\ HttpKernel \\ Exception \\ NotFoundHttpException;

有關更多信息,您可以訪問

https://httpd.apache.org/docs/2.4/custom-error.html

https://docs.microsoft.com/zh-cn/aspnet/web-forms/overview/older-versions-getting-started/deploying-web-site-projects/displaying-a-custom-error-page-cs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM