PHP cURL proxiko goiburuak: CONNECT versus helmugako erantzunak
Mantendu bereizita CONNECT, autentifikazio, birbideratze eta azken erantzunaren goiburuak PHP cURL transferentziak proxy bat erabiltzen duenean.
Bildu goiburu-lerroak erantzunaren gorputzetik bereizita. Proxy baten bidezko transferentziak CONNECT, autentifikazio, birbideratze eta helmugako erantzun goiburuak eragiketa bakarrean eman ditzake:
$headerLines = [];
curl_setopt($handle, CURLOPT_HEADERFUNCTION,
function ($handle, $line) use (&$headerLines) {
$headerLines[] = $line;
return strlen($line);
}
);
Atzera-dei honek lerroen jatorrizko sekuentzia gordetzen du eta onartutako byte kopurua itzultzen du. Lerro osoak jasotzen ditu; ordea, oraindik ez ditu erantzunetan taldekatzen ez eta azken webguneko goiburuak hautatzen.
Interpretatu sekuentzia bloke gisa
HTTP egoera-lerro batek erantzun-bloke bat hasten du, eta lerro zuri batek haren goiburuak amaitzen ditu. Gorde muga horiek azken helmugako erantzuna aukeratu aurretik. Tarteko autentifikazio-saioek eta birbideratzeek blokeak gehi ditzakete bakoitzak.
Trailerrak geroago irits daitezke atzera-deiaren bidez. Gorde nahikoa parser-egoera hasierako goiburuekiko bereizteko, geroagoko eremu bakoitza lehen erantzunari erantsi beharrean.
Gorde edo ezabatu tunelaren froga
Irakurri CURLINFO_HTTP_CONNECTCODE bereizita HTTPS tunelaren CONNECT egoerarako. Onartutako tunel batek ez du webgunearen erantzun arrakastatsurik frogatzen.
Biltzaileak CONNECT goiburuak behar ez baditu, CURLOPT_SUPPRESS_CONNECT_HEADERS honek kontrolatzen du haien bidalketa konfiguratutako goiburu-irteerara eta atzera-dei bideetara. Egiaztatu laguntza lotutako libcurl eta PHP konpilazioan. Ezabatzeak bilketa sinplifikatzen du, baina diagnostikoari lagun diezaiokeen goiburu-mailako tunelaren froga kentzen du.
Ez berreskuratu gorputza desplazamendu finko batekin edo HTML etiketa bilatuz. Goiburu-tamainak aldatu egiten dira, tarteko erantzunak desberdinak dira, eta gorputza bitarra edo hutsa izan daiteke. Bertsio zehatz bateko errore-txosten zahar batek ez du suposatutako desplazamendua justifikatzen.
Mantendu gorputzaren tratamendua bereizita, eta gorde transferentzia-errorea behatutako erantzun-faseekin bilketak edo analisiak huts egiten badu. Horrek atzera-dei etena, aplikazio-datu gaizki eratuak eta proxi-truke ukatua bereizten ditu.