php curl keepalive,HTTPKeepAlive,开启还是关闭
所謂「HTTP Keep-Alive」,在維基百科里稱為「HTTP Persistent Connection」,說白了就是復(fù)用HTTP連接,如此一來理論上客戶端的用戶體驗會更流暢,但是與之相對服務(wù)端不得不維持大量的連接。開啟還是關(guān)閉,這是個問題。
一個經(jīng)常用來講解HTTPKeepAlive的例子一般是這樣描述的:當我們訪問一個包含了若干個圖片的網(wǎng)頁時,如果HTTPKeepAlive是關(guān)閉的,那么頁面中每一個圖片都會發(fā)起一次連接請求;但是如果HTTPKeepAlive是開啟的,那么因為可以復(fù)用HTTP連接,所以可以節(jié)省很多不必要的開銷。
聽起來不錯!不過現(xiàn)在可不是用貓上網(wǎng)的年代了,當今高帶寬低延遲的網(wǎng)絡(luò)讓建立HTTP連接不再是什么難事兒,此時訪問一個包含了若干個圖片的網(wǎng)頁時,與其打開一個連接然后串行的請求圖片,不如打開多個連接然后并行的請求圖片,事實上現(xiàn)代瀏覽器也都是這么干的,最佳實戰(zhàn)甚至倡導(dǎo)通過多域名進一步提升并發(fā)數(shù)。
此外,再讓我們看看某臺開啟了KeepAlive的Nginx服務(wù)器的Status結(jié)果:
shell> curl -s http://127.0.0.1/status
Active connections: 95896
server accepts handled requests
66542336512 66542336512 67713042963
Reading: 1945 Writing: 82 Waiting: 93869
其中,各項結(jié)果的含義如下:
Active connections:?number of all open connections
Server accepts handled requests:?nginx accepted 66542336512 connections, handled 66542336512 connections (no one was closed just it was accepted), and handles 67713042963 requests
Reading: nginx reads request header
Writing: nginx reads request body, processes request, or writes response to a client
Waiting:?keep-alive connections, actually it is active – (reading + writing)
實際復(fù)用HTTP連接的效果如何呢:
67713042963 / 66542336512 = 1.01 requests per connection
額滴神啊,基本等同于沒用!為什么會這樣?因為這是一臺WebService服務(wù)器,客戶端只是偶爾訪問一次,此時的KeepAlive連雞肋都不如,為了服務(wù)器的性能,關(guān)閉它吧!
…
HTTPKeepAlive,開啟還是關(guān)閉,大家不妨結(jié)合自己的客觀情況重新思考一下。
總結(jié)
以上是生活随笔為你收集整理的php curl keepalive,HTTPKeepAlive,开启还是关闭的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中doc=parased.g
- 下一篇: java invoke 泛型_利用Jav