[英]What's the bad effect of “http: multiple response.WriteHeader calls”?
我的服務器運行良好,盡管我發現“ http:多重響應.WriteHeader調用”例外。 此異常不會導致我的服務器出現恐慌或怪異的行為。
我進行了很多搜索,但只找到了解決該問題的方法。 沒有文檔描述異常的不良影響。 有人可以幫我找到原因,為什么“ http:多重響應.WriteHeader調用”是一個異常,它引起的不良影響是什么? 提前致謝。
更新
我在這里閱讀了源代碼:
WriteHeader
調用WriteHeader
,僅打印日志,然后不執行任何操作。 似乎多次調用WriteHeader
不會導致服務器異常運行。
在將響應標頭發送到客戶端之前,您只能編寫一次。 因為您的代碼在發送給客戶端之后正在嘗試編寫響應標頭,所以客戶端將永遠不會看到您嘗試發送的最終響應。
您可能會遇到一個錯誤,即客戶端得到錯誤的響應,然后您對該錯誤進行了以后的修訂,或者您遇到了一個錯誤,即在編寫了正確的響應頭之后執行了錯誤的代碼。 無論哪種方式,它都是一個錯誤。
不利的影響是實際結果很可能與您期望的結果不同。 如果在第10行上調用WriteHeader(200)
,然后在第50行上調用,則在同一ResponseWriter
上調用WriteHeader(404)
,您期望響應代碼是什么? 404
還是200
?
WriteHeader
忽略后續調用,並通過記錄該消息來告訴您有關此消息的信息,這樣,當您獲得200
而不是您可能期望的404
,您只需查看服務器日志即可知道發生了什么。 該消息在那里可以為您提供幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.