面試題:HTTP1.0和HTTP1.1的區別?
我的回答:
1.長連接:HTTP1.1引入了長連接的機制,connection:keep-alive。一個TCP連接可以進行多次請求和響應。而HTTP1.0每次請求響應一次都得建立連接、斷開連接。
引入長連接之后,提高了效率,節省了資源。
2.引入了新的響應狀態碼,比如100-continue等。
3.引入了Host頭:可以將多個網站托管到同一臺物理服務器上,節約了IP地址資源和網站托管的成本。
展開講3:
在HTTP1.0的時代,一個域名也就是網站,就是對應一個IP地址。隨著時代的發展,網站越來越多,這樣一一對應的話,IP地址是不夠的。
所以在HTTP1.1進行了優化,多加了Host頭。
意思就是:多個域名或者叫網站對應一個IP地址。當瀏覽器發起請求時,請求頭中多了Host字段。服務器收到請求時,會檢查Host字段,從而將對應請求的網站資源返回給客戶端。
這樣就節省了IP地址,起到了虛擬主機的作用。
4.帶寬優化:
在HTTP1.0中,存在帶寬浪費的現象:客戶端只是請求一個對象資源的一部分,但是服務器會返回整個對象。
在HTTP1.1中,在請求頭中引入了range頭域,允許只請求資源的某個部分,即是返回碼206(Partial Content)
5.緩存:
HTTP1.0使用If-Modified-Since和expire來進行緩存控制
HTTP1.1使用Entity Tag/If-None-Match等更多緩存頭來控制緩存策略。