2012-10-28 72 views
35

什麼是X-Forwarded-Proto HTTP標頭值的完整規範?什麼是X-Forwarded-Proto HTTP頭的完整規範?

+0

相關:[自定義HTTP標頭:命名約定](http://stackoverflow.com/questions/3561381/custom-http-headers-naming-conventions) – BalusC

+0

*'Forwarded:for = 192.0.2.60;原= HTTP; by = 203.0.113.43' * ....... RFC 7239,請參閱https://en.wikipedia.org/wiki/X-Forwarded-For – Pacerier

回答

29

沒有「完整規範」 - 這是事實上的標準。標題名稱前面的X-通常爲*已將其表示爲實驗/非標準/供應商特定。一旦它是HTTP的標準部分,它就會丟失前綴。

IETF在標準化方面做了一些工作,但只是在草稿階段,據我所知。截至撰寫本文時,請查閱http://tools.ietf.org/html/draft-ietf-appsawg-http-forwarded-10以瞭解最新的草稿。但請注意,它可以隨時更換,而且不會在生產過程中依賴它。

更新:

RFC 7239現在定義Forwarded:頭,它旨在替換X-Forwarded-*。如果你關心標準,我會推薦使用它。


*這曾經是官方的東西,但不再是。 RFC 6648棄用X-前綴約定。不幸的是,該公約是如此廣爲人知(並且棄用如此低調),以致IETF之外的大多數人可能會忽視這一建議。

+2

這是誤導。 HTTP頭字段中的「X-」前綴不是特殊的。 您提到的Internet草案定義了一個名爲「Forwarded」的* new *標頭字段,用於替換野外發現的「X-Forwarded- *」標頭字段。 此外,它已被批准發佈,所以我不希望有任何更改。 –

+2

它作爲Internet草案發布。根據定義,如其自身序言中所述,它只應被視爲「正在進行中」。依靠自己的危險;它已經*有*改變,迄今爲止13次。每次更改的發佈都是一樣的。並說出你對「X-」的喜好,但它*是一個已知的慣例,並且已經有相當長的一段時間了。一個RFC不會改寫15年以上的歷史,就像IETF希望的那樣。:) – cHao

+1

潮見https://datatracker.ietf.org/doc/draft-ietf-appsawg-http-forwarded/參加選秀的狀態 - 這樣的草案已經批准IESG,不應該再改變除了編輯修改和重新格式化之外。如果您想挑選,我建議您參考IETF標準流程文檔。 –

11

從2014年6月起終於有RFC 7239 - Forwarded HTTP Extension了。標題在5.4節定義。

一些例子:

Forwarded: proto=https 
Forwarded: for=1.2.3.4;proto=http 

我只是希望這不會花費太多時間去廣泛採用。由於缺乏標準,可以在question中看到標題多樣性的一個例子。

+1

在獲得採納之前需要很長時間。有大量的服務器需要更新來解析新的HTTP頭。我並沒有真正地熱衷於更新庫,框架,服務器等等。 – CMCDragonkai

+0

「標準」是被普遍使用和實際傳遞給新人的東西,而不是被選定的智者所祝福的東西。通過這樣的定義,X-Forwarded-Proto是標準,RFC7239只是噪聲。 – kubanczyk

+0

我傾向於同意,「沒有人」使用「轉發:」這是一個沒人知道的新標準,每個人都仍在使用「X-Forwarded- *」。我偶然偶然發現了RFC 7239。現在它是一個rfc它會被採用,但新標準比設置多個標題更加複雜。 HA-Proxy現在是否定義了標準?所有這一切使事情變得複雜。現在你必須支持舊的非標準和新標準。 – 2017-01-26 15:05:55