HTTP1.0 中默認是在每次請求/應答,客戶端和服務器都要新建一個連接,完成之后立即斷開連接,這就是短連接。當使用Keep-Alive模式時,Keep-Alive功能使客戶端到服務器端的連接持續(xù)有效,當出現(xiàn)對服務器的后繼請求時,Keep-Alive功能避免了建立或者重新建立連接,這就是長連接。其使用方法如下:
HTTP1.0版本是默認沒有Keep-alive的(也就是默認會發(fā)送keep-alive),所以要想連接得到保持,必須手動配置發(fā)送Connection: keep-alive字段。若想斷開keep-alive連接,需發(fā)送Connection:close字段;
HTTP1.1規(guī)定了默認保持長連接,數(shù)據(jù)傳輸完成了保持TCP連接不斷開,等待在同域名下繼續(xù)用這個通道傳輸數(shù)據(jù)。如果需要關閉,需要客戶端發(fā)送Connection:close首部字段。
Keep-Alive的建立過程:
客戶端向服務器在發(fā)送請求報文同時在首部添加發(fā)送Connection字段
服務器收到請求并處理 Connection字段
服務器回送Connection:Keep-Alive字段給客戶端
客戶端接收到Connection字段
Keep-Alive連接建立成功
服務端自動斷開過程(也就是沒有keep-alive):