2014-09-02 36 views
1

嗨,我正在使用rest服務來開發java web應用程序。我使用的是Apache Tomcat服務器。現在,當我發送請求到我的應用程序並獲得結果。然後下面的東西可以在響應標題中看到:從tomcat的響應頭中隱藏狀態碼

Status: 200 Ok 
Content-Type: application/json 
Date: (Whatever date is) 
Server: Test 
Transfer-Encoding: chunked. 

首先,我試圖從上面的信息中刪除服務器標記。我搜索了這一點,並最終達到了這一點,我不能刪除它。但我可以更改服務器名稱,所以我這樣做。 (將服務器名稱重命名爲Test)。

現在我希望狀態不應該顯示在響應標題。我搜索了,但無法找到任何方式。我可以防止顯示此狀態嗎?

問候

+2

敢請問你爲什麼要刪除有效和有用的頭? – 2014-09-02 18:49:19

回答

2

無法刪除「狀態頭」,因爲它是HTTP的一部分。

HTTP/1.1 200 OK 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 
Header: Value 
etc.... 

狀態直接在響應中。刪除狀態是沒有意義的。 RFC表示正確的響應包含狀態碼。

6響應

接收和解釋的請求消息之後,服務器 與HTTP響應消息進行響應。

Response  = Status-Line    ; Section 6.1 
        *((general-header  ; Section 4.5 
        | response-header  ; Section 6.2 
        | entity-header) CRLF) ; Section 7.1 
        CRLF 
        [ message-body ]   ; Section 7.2 

的狀態行是:

6.1狀態行

一個響應消息的第一行的狀態行,由協議版本,隨後 一個數字狀態代碼及其相關的文本短語,每個元素用SP
個字符分隔。除最後的CRLF序列外,不允許使用CR或LF。

Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF 

從我的RFC的理解,如果你不發送Status-Code,你是不是尊重HTTP RFC,因此不能「說」 HTTP這就是一個HTTP瀏覽器說話。

https://www.ietf.org/rfc/rfc2616.txt

如果您要發送到HTTP客戶端響應怪,你可能想要做一個自定義套接字程序,將偵聽端口80和發送任何你想要的迴應。

這裏是幫助你建立一個Python插槽服務器的資源:https://docs.python.org/2/library/socketserver.html