php curl keepalive,HTTPKeepAlive,開啟還是關閉

所謂「HTTP Keep-Alive」,在維基百科里稱為「HTTP Persistent Connection」,說白了就是復用HTTP連接,如此一來理論上客戶端的用戶體驗會更流暢,但是與之相對服務端不得不維持大量的連接。開啟還是關閉,這是個問題。

一個經常用來講解HTTPKeepAlive的例子一般是這樣描述的:當我們訪問一個包含了若干個圖片的網頁時,如果HTTPKeepAlive是關閉的,那么頁面中每一個圖片都會發起一次連接請求;但是如果HTTPKeepAlive是開啟的,那么因為可以復用HTTP連接,所以可以節省很多不必要的開銷。

聽起來不錯!不過現在可不是用貓上網的年代了,當今高帶寬低延遲的網絡讓建立HTTP連接不再是什么難事兒,此時訪問一個包含了若干個圖片的網頁時,與其打開一個連接然后串行的請求圖片,不如打開多個連接然后并行的請求圖片,事實上現代瀏覽器也都是這么干的,最佳實戰甚至倡導通過多域名進一步提升并發數。

此外,再讓我們看看某臺開啟了KeepAlive的Nginx服務器的Status結果:

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

其中,各項結果的含義如下:

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)

實際復用HTTP連接的效果如何呢:

67713042963 / 66542336512 = 1.01 requests per connection

額滴神啊,基本等同于沒用!為什么會這樣?因為這是一臺WebService服務器,客戶端只是偶爾訪問一次,此時的KeepAlive連雞肋都不如,為了服務器的性能,關閉它吧!

HTTPKeepAlive,開啟還是關閉,大家不妨結合自己的客觀情況重新思考一下。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541777.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541777.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541777.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何使用ES6中的參數

ECMAScript 6(或者叫 ECMAScript 2015)是 ECMAScript 的最新標準,極大的提高了 JavaScript 中處理參數的能力。現在我們可以使用 rest 參數(rest parameters)、默認值(default values)和解構&am…

c++中tle是什么意思_如何在競爭性編程中克服TLE?

c中tle是什么意思什么是TLE? (What is TLE?) TLE means "Time Limit Exceed". So, in competitive programming, there are some constraints with a specific time limit (normally for each input 1 sec) and your task is to write your code in such…

美顏相機window 開源_X-Window系統| 免費和開源軟件

美顏相機window 開源X窗口系統 (The X-Window System) The X-Window System is a GUI that sits over Linux. Not at all like Microsoft Windows, the X Window System can glance and work in an enormously wide range of ways. It can work smoothly or lag, look excellen…

php 代碼 自動檢查工具下載,PHP_CodeSniffer安裝和使用教程(自動代碼檢查規范工具)...

在我們開發中都會講究代碼規范,若是個人開發者,代碼規范與否,只要自己看得懂便可以了,但是在團隊協作中,代碼規定尤為重要,下面,我們介紹一款PHP_CodeSniffer,自動檢查代碼規范的工具…

國際象棋之跳馬程序

問題描述: 假設國際象棋棋盤有5*5共25個格子。設計一個程序,使棋子從初始位置(棋盤格編號為1的位置)開始跳馬,能夠把棋盤的格子全部走一遍,每個格子只允許走一次。要求: 1) 輸出一個解(用二維數組來記錄馬跳的過程,即[步號,棋盤格編號],左上角為第一步起點)&#xf…

kafka安裝使用

版本:kafka_2.11-0.10.1.0 (之前安裝2.10-0.10.0.0,一直出問題) 安裝Springboot結合Kafka的使用安裝 下載并解壓代碼 wget http://mirrors.cnnic.cn/apache/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz #http://kafka.apache.org/downloadstar -zxvf kafka…

php獲取上傳文件路徑 fakepath,JavaScript_js獲取上傳文件的絕對路徑實現方法,在html中input type=file - phpStudy...

js獲取上傳文件的絕對路徑實現方法在html中function upload() {var filename document.getElementById("importFile").value;// 這時的filename不是 importFile 框中的值alert(filename);}如上面的代碼,用文件上傳對話框選擇文件后,如果選擇&…

在Bootstrap中使用類的按鈕類型

Bootstrap has 7 different types of buttons with contextual classes from which we can create buttons easily by using these classes (.btn-default, .btn-success, .btn-danger, .btn-primary, .btn-info, .btn-warning, .btn-link). Bootstrap具有上下文類型的 7種不同…

php json encode中文亂碼,php json_encode中文亂碼如何解決

php encode中文亂碼的解決辦法:首先打開相應的PHP文件;然后使用正則語句“preg_replace("#\\\u([0-9a-f]{4})#ie","iconv(UCS-2BE, UTF-8...)”將編碼替換成中文即可。本文列舉3個方法,實現json_encode()后的string顯示中文問…

鄉村圖景(轉載)

轉自: http://cul.qq.com/a/20160205/046437.htm 我丈夫家在湖北孝感孝昌縣的一個村子。2005年第一次過年回到他家,印象最深的就是嫂子。我暗自問當時的男友,“哥哥盡管算不上特別帥氣,但為何找了這么難看的嫂子?”后來才發現&…

stl向量最大值_C ++ STL中向量的最小和最大元素

stl向量最大值Given a vector and we have to find the smallest (minimum) and largest (maximum) elements. 給定一個向量,我們必須找到最小(最小)和最大(最大)元素。 查找向量的最小和最大元素 (Finding vectors minimum & maximum elements) To find minim…

oracle如何設置備份計劃任務,Oracle數據庫設置任務計劃備份一周的備份記錄

Oracle 數據庫備份:--保留最近一周的備份記錄;正文:開始代碼如下:echo 設置備份文件存放文件夾...set "tbufE:\Cway\backup"echo 設置備份文件名(以星期幾命名,即備份文件只保存最近一周)...set name%date%set name%nam…

索引(轉載自百度百科)

Oracle索引 編輯本詞條缺少信息欄、名片圖,補充相關內容使詞條更完整,還能快速升級,趕緊來編輯吧!在oracle索引是一種供服務器在表中快速查找一個行的數據庫結構。合理使用索引能夠大大提高數據庫的運行效率。目錄 1 概念及作用 2…

阿姆斯特朗數_阿姆斯特朗的功能依賴公理 數據庫管理系統

阿姆斯特朗數Armstrong axioms are a complete set of inference rules or axioms, introduced and developed by William W. Armstrong in 1974. The inference rules are sound which is used to test logical inferences of functional dependencies. The axiom which also …

ORACLE JOB 失敗 查看,Oracle JOB異常中斷原因分析

注釋今天研發同事找我確認 PKG_WMS.proc_TaskMain 存儲的 job 是否還在運行,竟發現 dba_jobs.NEXT_DATE4000/1/1,如下看看究竟原因吧~JOB 信息:參數:BROKEN : 中斷標記 ,N 啟動、Y 中斷 --> DBMS_JOBS.BROKEN(job_id,TRUE/FA…

ruby打印_Ruby程序打印一個數字的乘法表

ruby打印打印乘法表 (Printing multiplication table) This requires a very simple logic where we only have to multiply the number with digits from 1 to 10. This can be implemented by putting the multiplication statement inside a loop. We have mentioned two wa…

步驟1:JMeter 錄制腳本接口測試

JMeter 常用測試方法簡介 1.下載安裝 http://jmeter.apache.org/download_jmeter.cgi 安裝JDK,配置環境變量JAVA_HOME. 系統要求:JMeter2.11 需要JDK1.6以上的版本支持運行 2.學習Jmeter元件 http://jmeter.apache.org/usermanual/component_reference.h…

模擬斷電oracle數據不一致,Oracle數據庫案例整理-Oracle系統運行時故障-斷電導致數據文件狀態變為RECOVER...

1.1 現象描述異常斷電,數據庫數據文件的狀態由ONLINE變為RECOVER。系統顯示如下信息:SQL> select file_name ,tablespace_name ,online_status from dba_data_files;FILE_NAME---------------------------------------------------------------…

python日歷模塊_Python日歷模塊| prmonth()方法與示例

python日歷模塊Python calendar.prmonth()方法 (Python calendar.prmonth() Method) prmonth() method is an inbuilt method of the calendar module in Python. It works on simple text calendars and prints the calendar of the given month of the given year. Also, the…

多例模式

多例:只是單例的一種延伸 不必過于在意各種模式的名字,重要的是學會融會貫通,把生產的car放到集合中 類似JDBC 的連接池 把連接對象放到池中 多例模式特點: 1. 多例類可以有多個實例 2. 多例類必須自己創建自己的實例&a…