欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP CURL 內(nèi)存泄露問(wèn)題解決方法

 更新時(shí)間:2015年02月12日 11:35:19   投稿:junjie  
這篇文章主要介紹了PHP CURL 內(nèi)存泄露問(wèn)題解決方法,CRUL長(zhǎng)時(shí)間訪問(wèn)HTTPS網(wǎng)站時(shí)有內(nèi)存泄露問(wèn)題,本文經(jīng)過(guò)反復(fù)調(diào)試找到了解決方法,需要的朋友可以參考下

phpcurl使用privoxy代理訪問(wèn)https://www.google.com/search?q=xxx

curl配置平淡無(wú)奇,長(zhǎng)時(shí)間運(yùn)行發(fā)現(xiàn)一個(gè)嚴(yán)重問(wèn)題,內(nèi)存泄露!不論用單線程和多線程都無(wú)法避免!是curl訪問(wèn)https站點(diǎn)的時(shí)候有bug!
內(nèi)存泄露可以通過(guò)linux的top命令發(fā)現(xiàn),使用php函數(shù)memory_get_usage()不會(huì)發(fā)現(xiàn)。

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

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

[CURLOPT_HTTPPROXYTUNNEL] = true;
[CURLOPT_SSL_VERIFYPEER] = false;
[CURLOPT_SSL_VERIFYHOST] = false;

CURLOPT_HTTPPROXYTUNNEL具體說(shuō)明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 /index.html 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).

http://stackoverflow.com/questions/12288956/what-is-the-curl-option-curlopt-httpproxytunnel-means

相關(guān)文章

  • 淺析PHP中strlen和mb_strlen的區(qū)別

    淺析PHP中strlen和mb_strlen的區(qū)別

    在php中常見的計(jì)算字符串長(zhǎng)度的函數(shù)有:strlen和mb_strlen.當(dāng)字符全是英文字符的時(shí)候,兩者是一樣。這里主要比較一下,中英文混排的時(shí)候,兩個(gè)計(jì)算結(jié)果。
    2014-08-08
  • 簡(jiǎn)單談?wù)凱HP面向?qū)ο笾畼?biāo)識(shí)對(duì)象

    簡(jiǎn)單談?wù)凱HP面向?qū)ο笾畼?biāo)識(shí)對(duì)象

    下面小編就為大家?guī)?lái)一篇簡(jiǎn)單談?wù)凱HP面向?qū)ο笾畼?biāo)識(shí)對(duì)象。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • ThinkPHP?通用的API格式封裝實(shí)例代碼

    ThinkPHP?通用的API格式封裝實(shí)例代碼

    這篇文章主要介紹了ThinkPHP通用的API格式封裝,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 最新評(píng)論