1.什麼是持久連結? (keep alive模式)
HTTP1.1規定了預設保持長連接(HTTP persistent connection,也有翻譯為持久連接);資料傳輸完成了保持TCP連接不斷開(不發RST包、不四次握手),等待在同域名下繼續用這個通道傳輸資料;相反的就是短連線。
HTTP 1.1版本支援持久連線1.0版本不支援
與非持久連線的差異:
持久連線使用戶端到伺服器端連線持續有效,避免了重新建立連線
大大減少了連線的建立以及關閉延遲。 HTTP連線是建立在TCP協定之上的,建立一條TCP連線需要三次握手,TCP連線關閉時需要四次揮手。這些都是需要時間的。
2.什麼是管線化
管線化機制須透過永久連接(persistent connection)完成,僅HTTP/1.1支援此技術(HTTP/1.0不支持)
在使用持久連接的情況下,某個連接訊息的傳遞類似於
請求1 -> 回應1 -> 請求2 ->回應2
管線化:某個連線上的訊息變成了類似這樣
請求1 -> 請求2 -> 請求3 -> 回應1 -> 回應2 -> 回應3
##【註】
a、那麼持久連接和管線化的區別在於:持久連接的一個缺點是請求和響應式是順序執行的,只有在請求1的回應收到之後,才會發送請求2 ,而管線化不需要等待上一次請求得到回應就可以進行下一次請求。實作並行發送請求。 b、 只有GET和HEAD要求可以進行管線化,而POST則有所限制以上是http的持久連接和管線化的詳細內容。更多資訊請關注PHP中文網其他相關文章!