我想在C#中實現一個小的HTTP/2服務器,以瞭解該協議。我運行的是Chrome最新的canary build(v 45.0.2436.5),但我似乎無法讓客戶端協商升級到HTTP/2連接。鉻金絲雀不提供HTTP/2
的RFC指出以下:
客戶端,使得無需事先 知識約支持HTTP/2上的下一跳的「HTTP」 URI的請求使用HTTP 升級機構(節6.7 [RFC7230])。客戶端通過 發出的HTTP/1.1請求包含一個帶有 「h2c」標記的升級標題字段。
這使我相信第一個請求應該包含一個Upgrade
標題,但它不會。這是我得到的要求:
GET/HTTP/1.1
Host: 127.0.0.1:1234
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2436.5 Safari/537.36
HTTPS: 1
Accept-Encoding: gzip, deflate, sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
任何人都可以向我解釋爲什麼會發生這種情況?
在此先感謝您的答案!
感謝您的回答!這似乎很合乎邏輯,雖然它會很高興爲Chrome提供純文本升級 – HackerCow