[英]Setting custom HTTP response headers in LiteSpeed with PHP
我試圖設置自定義HTTP 1.0狀態代碼,以便通過AJAX(使用jQuery)返回更多描述性錯誤消息。
在PHP中,我有類似以下內容:
header( 'HTTP/1.0 909 Hello World' );
exit;
這可以在使用Apache 2.2.15的開發環境上按預期方式運行,但在運行LiteSpeed 5.5的生產Web服務器上則無法運行。 LiteSpeed返回200 OK
。
使用這個:
header( 'HTTP/1.0 404 Hello World' );
exit;
Apache返回上面的文本的404
。 LiteSpeed將自定義文本替換為默認的“未找到”。
知道如何在LiteSpeed中覆蓋此功能以使其與Apache相同的方式嗎? 我了解他們應該是可比的網絡服務器。
有什么想法,請告訴我。
-P。
首先,為什么要使用HTTP 1.0而不是1.1?
其次,您要嘗試執行HTTP規范中未定義的操作。 LiteSpeed可能會檢查要求其發送的標頭,並用某些默認值替換它無法識別的值。
您不應該試圖強制HTTP以非標准的方式運行,一旦這樣做,它就不再是HTTP。 規范可以確保由不同人員在不同時間實施的軟件可以互操作,並且如果您不遵循規范,該軟件應該如何運行是完全不確定的。
Apache允許不知道的標頭通過是完全可以接受的行為,LiteSpeed拒絕通過標頭的行為也是如此。 在這種情況下,讓惡魔從你的鼻子里飛出來也是服務器要做的一件事。 客戶端打算使用它無法識別的HTTP響應代碼做什么?
如果您需要在標題中發送其他信息,為什么不添加新的標題? 以下應該做。
header ('X-My-App-Header: Hello World!');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.