免费游戏不用登录直接玩,苹果6s plus,不朽情缘滴血大奖视频,电子pga是什么意思

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

時(shí)間:2020-11-19 12:13:35 PHP 我要投稿

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()不會(huì)發(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).

主站蜘蛛池模板: 正安县| 乌鲁木齐县| 元江| 晋州市| 平安县| 大丰市| 土默特左旗| 南宫市| 梅州市| 高碑店市| 仲巴县| 诸暨市| 格尔木市| 建平县| 杭州市| 涪陵区| 通辽市| 绍兴市| 海林市| 高安市| 德惠市| 拜城县| 镇宁| 东乌珠穆沁旗| 贺州市| 稻城县| 正安县| 崇义县| 池州市| 盐池县| 剑阁县| 靖远县| 山阴县| 邮箱| 信宜市| 绥芬河市| 虞城县| 南皮县| 攀枝花市| 兰考县| 平山县|