簡體   English   中英

使用PHP在LiteSpeed中設置自定義HTTP響應標頭

[英]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.

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