如何HTTP 1.1服務器應該爲頭部像Pragma : no-cache
一個HTTP 1.0請求,這是在HTTP 1.0支持,但反應不是HTTP 1.1HTTP 1.1服務器如何響應HTTP 1.0請求?
0
A
回答
5
如果我們假設HTTP 1.1服務器希望後向兼容HTTP 1.0客戶端,那麼HTTP 1.1服務器會向HTTP 1.0客戶端發送HTTP 1.0響應。
例如,讓我們假設你的HTTP 1.0客戶端發送這樣的請求:
GET /path/to/resource HTTP/1.0
注意,請求的最後一部分是「HTTP/1.0」,表示客戶端支持的HTTP版本。我們會回到這一點,但這很重要。
您的HTTP 1.1服務器可能通常需要使用Cache-Control
響應標頭來禁用任何緩存,例如。:
HTTP/1.1 200 OK
Cache-Control: no-cache
但是Cache-Control
不支持HTTP 1.0請求,和上述響應表示它是一個HTTP 1.1的反應,這是奇數,給出的HTTP 1.0請求。
因此取而代之的是,HTTP 1.1服務器必須產生一個HTTP 1.0兼容的響應,就像這樣:
HTTP/1.0 200 OK
Pragma: no-cache
的HTTP 1.1服務器非常注重在請求的HTTP版本,並構造一個響應對於該HTTP版本而言適當的。對於與較新的向後兼容服務器(,例如 HTTP 1.1)進行通信的舊客戶端(。例如HTTP1.0),這是有效的。
會發生什麼,但是,如果它是一個較新的客戶交談的年長服務器,如HTTP 1.1客戶交談的HTTP 1.0服務器?在這種情況下,該請求可能是:
GET /path/to/resource HTTP/1.1
Host: example.com
Cache-Control: no-cache
的HTTP 1.0服務器將不知道有關Cache-Control
頭,或任何其他HTTP 1.1-主義。在這種情況下,由於版本不兼容,HTTP 1.0服務器可能會因使用「400錯誤請求」(或其他類似的不成功響應代碼)而拒絕響應,服務器可能會向HTTP 1.1發出HTTP 1.0響應請求:
HTTP/1.0 200 OK
Pragma: no-cache
您看到的實際行爲將取決於所涉及的客戶端和服務器實現。
希望這會有所幫助!
相關問題
- 1. 僅HTTP 1.0服務器如何響應HTTP 1.1請求?
- 2. 使用HTTP 1.0響應迴應HTTP 1.1請求有效嗎?
- 3. AJAX HTTP請求和Python網絡服務器HTTP響應返回
- 4. WCF服務 - HTTP請求和響應
- 5. Web服務 - HTTP GET請求和響應
- 6. 如何響應JSON-RPC服務器上的HTTP OPTIONS請求
- 7. Http服務器如何創建請求頭和響應頭
- 8. utf8中的HTTP HTTP服務器響應
- 9. HTTP 1.1請求行
- 10. 服務器不響應HTTP/1.1客戶端中的併發請求使用Java
- 11. 爲什麼tomcat答覆HTTP 1.1使用HTTP 1.0請求回覆?
- 12. 400 HTTP/1.1,但不是在HTTP錯誤的請求/ 1.0
- 13. 如何測量服務器端HTTP請求和HTTP響應之間的時間?
- 14. HTTP請求響應
- 15. Netty http服務器響應
- 16. 使用Servlet API,如何確定請求是HTTP/1.0還是HTTP/1.1?
- 17. 服務器端從HTTP/1.0升級到HTTP/1.1,SOAP消息> 4kb拋出'400:錯誤請求'錯誤
- 18. HTTP請求失敗! HTTP/1.1 403 Forbidden
- 19. HTTP/1.1和HTTP/2混合請求
- 20. expressjs服務器http請求返回空響應
- 21. 通過http請求獲得名稱服務器的響應?
- 22. http - 客戶端服務器 - 請求響應 - 連接
- 23. Python HTTP服務器對POST請求沒有響應
- 24. 實現HTTP服務器 - 是否必須響應所有請求?
- 25. 向服務器發送HTTP POST請求並獲得響應?
- 26. 發送GET請求到HTTP服務器;不關心響應
- 27. 使用php服務器響應來自Android的http請求
- 28. http請求花費太長時間等待服務器響應
- 29. Android上的Http發佈:服務器請求和響應
- 30. 爲什麼spray-can服務器不響應http請求?