2014-09-23 49 views
3

在瞭解有關HTTP 1.1和閱讀規範的更多信息時,它讓我覺得有一個可以演示協議的公開reference implementation會很有幫助。我想它會提供理想的,基本的例子,以及那些經常在公共服務器上禁用的協議部分(例如TRACE)的工作示例。是否有公共的HTTP 1.1參考實現?

我正在談論一個正在運行的可公開訪問的服務器。這個想法將顯示HTTP(應該)如何通過實際運行的Web服務器(和源)來工作。用戶可以使用fiddler等構建任意請求,以查看服務器如何響應。我假設它會是開源的。它可能基於現有的web服務器實現(例如Apache),可能帶有擴展來支持現有impl的整個協議。沒有(Transfer-Encoding壓縮等)。我知道這最後一部分是一個夢想,我只是通過解釋的方式把它放在這裏。

我知道HTTP是一個非常廣泛的協議,因此參考實現不會很全面。我可以想象爲什麼這樣的東西不存在的許多原因,我知道我可以啓動我自己的本地服務器並使用它(我已經做了多年的這種事情)。我知道我可以針對知名的現有公共服務器(Google等)進行探討。但是,我想知道是否存在任何類似於公共參考實現的東西。

+0

你的意思是你想引用網絡服務器?嘗試使用示例的Boost :: asio,或嘗試使用http的許多示例的libcurl。 – gbjbaanb 2014-09-23 07:19:46

+0

沒有最接近的東西可能是客戶端libwww http://www.w3.org/Library/ – nos 2014-09-23 07:19:54

+0

如果通過參考你的意思是官方 - 不,沒有 – 2014-09-23 07:21:05

回答

2

作爲IETF規範,HTTP/1.1沒有參考實現。相反,需要 "at least two independent interoperating implementations with widespread deployment and successful operational experience"

Implementation report for HTTP/1.1 to Draft Standard,你可以看到有大幅不止於此:

我們已經從26個實現

實施&檢測報告你說:

我可以想象很多很多原因,爲什麼這樣的事情不會存在

下面是一個:對於一個相當複雜的規範,你不希望人們設計具體的實現。任何「引用」實現都會產生錯誤,然後由隨後的針對該引用構建的代碼拾取錯誤。

該規範是權威的;在實現發散的情況下,您應該查閱規範(及其勘誤)以瞭解正確的行爲。

我知道我可以閒逛針對知名現有的公共服務器

沒錯。每The Tao of IETF

「我們相信,在粗糙的共識和運行代碼」