<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • PHP CURL內(nèi)存泄露的解決方法

    時(shí)間:2024-10-23 13:35:58 PHP 我要投稿
    • 相關(guān)推薦

    PHP CURL內(nèi)存泄露的解決方法

      curl配置平淡無奇,長時(shí)間運(yùn)行發(fā)現(xiàn)一個(gè)嚴(yán)重問題,內(nèi)存泄露!不論用單線程和多線程都無法避免!是curl訪問https站點(diǎn)的時(shí)候有bug!

      內(nèi)存泄露可以通過linux的top命令發(fā)現(xiàn),使用php函數(shù)memory_get_usage()不會發(fā)現(xiàn)。

      經(jīng)過反復(fù)調(diào)試找到解決辦法,curl配置添加如下幾項(xiàng)解決問題:

      復(fù)制代碼 代碼如下:

      [CURLOPT_HTTPPROXYTUNNEL] = true;

      [CURLOPT_SSL_VERIFYPEER] = false;

      [CURLOPT_SSL_VERIFYHOST] = false;

      CURLOPT_HTTPPROXYTUNNEL具體說明stackoverflow上有,直接貼原文:

      Without CURLOPT_HTTPPROXYTUNNEL

      Without CURLOPT_HTTPPROXYTUNNEL : You just use the proxy address/port as a destination of your HTTP request. The proxy will read the HTTP headers of your query, forward your request to the destination (with your HTTP headers) and then write the response to you.

      Example steps :

      1)HTTP GET / sent to 1.1.1.1 (proxy)

      2)1.1.1.1 receive request and parse header for getting the final destination of your HTTP request.

      3)1.1.1.1 forward your query and headers to www.site.com (destination in request headers).

      4)1.1.1.1 write back to you the response receive from www.site.com

      With CURLOPT_HTTPPROXYTUNNEL

      With CURLOPT_HTTPPROXYTUNNEL : You ask the proxy to open a direct binary connection (like HTTPS, called a TCP Tunnel) directly to your destination by doing a CONNECT HTTP request. When the tunnel is ok, the proxy write you back a HTTP/1.1 200 Connection established. When it received your browser start to query the destination directly : The proxy does not parse HTTP headers and theoretically does not read tunnel datas, it just forward it, thats why it is called a tunnel !

      Example steps :

      1)HTTP CONNECT sent to 1.1.1.1

      2)1.1.1.1 receive HTTP CONNECT and get the ip/port of your final destination (header field of HTTP CONNECT).

      3)1.1.1.1 open a TCP Socket by doing a TCP handshake to your destination 2.22.63.73:80 (ip/port of www.site.com).

      4)1.1.1.1 Make a tunnel by piping your TCP Socket to the TCP Socket opened to 2.22.63.73:80and then write you back HTTP/1.1 200 Connection established witch means that your client can now make your query throw the TCP Tunnel (TCP datas received will be transmited directly to server and vice versa).

    【PHP CURL內(nèi)存泄露的解決方法】相關(guān)文章:

    JAVA垃圾收集算法與內(nèi)存泄露的解決方法12-04

    PHP中curl的使用實(shí)例07-31

    Javascript 閉包引起IE內(nèi)存泄露分析07-05

    PHP的cURL庫有效地抓網(wǎng)頁的技巧08-08

    關(guān)于深入PHP內(nèi)存相關(guān)的功能特性詳解09-02

    電腦內(nèi)存常見故障及解決方法05-12

    手機(jī)內(nèi)存卡故障及解決方法10-10

    電腦內(nèi)存六大故障以及解決方法09-26

    Intel傲騰內(nèi)存是內(nèi)存還是固態(tài)硬盤06-17

    電腦內(nèi)存的作用08-26

    主站蜘蛛池模板: 四虎影视永久在线观看精品| 99麻豆久久久国产精品免费| 精品视频无码一区二区三区 | 久久精品国产一区二区 | 国产精品久久久久久久午夜片 | 四虎国产精品永免费| 精品国产网红福利在线观看| 无码精品人妻一区二区三区人妻斩| 国产精品一香蕉国产线看观看| 国产一区二区三区久久精品| 人妻精品久久久久中文字幕69| 无码欧精品亚洲日韩一区夜夜嗨| 国产精品部在线观看| 国产亚洲综合成人91精品| 久久青青草原精品国产| 在线精品亚洲一区二区| 日韩欧美一区二区三区中文精品 | 久久精品成人国产午夜| 国产精品乱码高清在线观看| 无码人妻精品中文字幕| 一本色道久久88综合日韩精品| 久久久久久极精品久久久| 国产手机在线精品| 国产精品一区二区久久精品无码| 国产韩国精品一区二区三区| 亚洲愉拍自拍欧美精品| 精品乱人伦一区二区三区| 国产成人无码久久久精品一| 精品偷自拍另类在线观看| 久久亚洲私人国产精品vA| 亚洲国产精品成人久久| 亚洲色精品vr一区二区三区| 亚洲精品无码专区久久久| 中国精品18videosex性中国| 无码少妇精品一区二区免费动态 | 2020国产精品| 97久久超碰国产精品旧版| 91精品国产高清91久久久久久| 精品人妻大屁股白浆无码| 国产日产韩国精品视频| 91精品国产自产在线观看永久|