我正想通過這個鏈接: https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Fuse/6.0/html/Web_Services_and_Routing_with_Camel_CXF/files/Proxying-Headers.html爲什麼Apache的駱駝過濾掉HTTP頭
它指出,使用HTTP或基於HTTP的組件建橋的應用程序時,經常需要刪除或過濾掉某些標題或您的路線中的標題類,以確保您的應用程序按照預期行事。另外在org.apache.camel.component.netty4.http.NettyHttpHeaderFilterStrategy可以看出,被過濾掉大量的頭如下:
protected void initialize() {
getOutFilter().add("content-length");
getOutFilter().add("content-type");
getOutFilter().add("host");
// Add the filter for the Generic Message header
// http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.5
getOutFilter().add("cache-control");
getOutFilter().add("connection");
getOutFilter().add("date");
getOutFilter().add("pragma");
getOutFilter().add("trailer");
getOutFilter().add("transfer-encoding");
getOutFilter().add("upgrade");
getOutFilter().add("via");
getOutFilter().add("warning");
}
我知道我們可以實現我們自己的過濾器覆蓋此行爲戰略。但是阻止標題的原因是什麼?例如,如果我不阻止緩存控制或編譯指示標題,會導致什麼副作用?
在上面提供的鏈接中,它還指出當HTTP生產者端點接收到交換並將其轉換爲目標消息格式時,它將如下處理In消息標頭:**所有其他標頭將轉換爲HTTP標頭目標消息,用下面的標頭,其被阻塞(基於不區分大小寫匹配)除外:** _content長度 內容類型 緩存控制 連接 日期 編譯 拖車 轉印-encoding upgrade via warning_ – user3244615
t他不是真的,HttpHeaderFilterStrategy會過濾掉所有的一般的http頭文件。我面臨同樣的問題,因爲它會過濾緩存控制頭。 – bLaXjack