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

    時間:2024-10-23 13:35:58 PHP 我要投稿
    • 相關推薦

    PHP CURL內存泄露的解決方法

      curl配置平淡無奇,長時間運行發現一個嚴重問題,內存泄露!不論用單線程和多線程都無法避免!是curl訪問https站點的時候有bug!

      內存泄露可以通過linux的top命令發現,使用php函數memory_get_usage()不會發現。

      經過反復調試找到解決辦法,curl配置添加如下幾項解決問題:

      復制代碼 代碼如下:

      [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內存泄露的解決方法】相關文章:

    JAVA垃圾收集算法與內存泄露的解決方法12-04

    PHP中curl的使用實例07-31

    Javascript 閉包引起IE內存泄露分析07-05

    PHP的cURL庫有效地抓網頁的技巧08-08

    關于深入PHP內存相關的功能特性詳解09-02

    電腦內存常見故障及解決方法05-12

    手機內存卡故障及解決方法10-10

    電腦內存六大故障以及解決方法09-26

    Intel傲騰內存是內存還是固態硬盤06-17

    電腦內存的作用08-26

    主站蜘蛛池模板: 99久久免费只有精品国产| 国产精品你懂的在线播放| 亚洲欧美日韩精品| 人人妻人人澡人人爽人人精品电影| 国产精品亚洲一区二区在线观看| 国产精品亚洲一区二区三区在线| 午夜精品一区二区三区在线观看| 久久精品国产影库免费看| 久久亚洲精品国产精品| 亚洲国产小视频精品久久久三级 | 精品无码一区二区三区爱欲 | 亚洲国产av无码精品| 国产精品一香蕉国产线看观看 | 国产精品揄拍100视频| 亚洲精品无码久久一线| 欧美日韩精品一区二区三区不卡| 国产精品一区三区| 国产成人高清精品免费观看| 欧美一区二区精品久久| 国产精品久久久久天天影视| 国产日韩精品欧美一区喷水| 亚洲AV成人无码久久精品老人| 最新国产精品拍自在线播放| 亚洲高清国产拍精品青青草原 | 国产精品嫩草影院AV| 精品国产一区AV天美传媒| 精品国产AⅤ一区二区三区4区| 国产精品激情综合久久| 国产精品男男视频一区二区三区| 亚洲国产精品久久久久久| 久久精品国产免费一区| 久久青青草原精品影院| 久久国产免费观看精品| 九九热精品在线| 亚洲永久永久永久永久永久精品| 柠檬福利精品视频导航| 亚洲精品国产成人99久久| 国产99视频精品免费视频76| 国产精品狼人久久久久影院| 国产亚州精品女人久久久久久| 久久精品国产99国产精品|