Uchwyty cURL w PHP a ponowne użycie połączeń proxy
Odróżnij zachowanie pamięci podręcznej połączeń libcurl od gwarancji, że połączenie TCP przez proxy pozostanie żywe.
Zachowanie uchwytu cURL może pozwolić późniejszym transferom na ponowne użycie zgodnych połączeń z pamięci podręcznej. Nie może jednak zmusić proxy do utrzymywania połączenia TCP otwartego bez końca.
Druga strona może zamknąć bezczynne połączenie, ścieżka sieciowa może zniknąć, a późniejszy transfer może wymagać innej trasy lub tunelu. Ponowne użycie to optymalizacja po stronie klienta podlegająca tym warunkom, a nie gwarancja dostępności.
W przypadku powtarzalnej pracy przez jedną politykę proxy utrzymuj przy życiu odpowiedni uchwyt lub pamięć podręczną połączeń multi-handle i unikaj opcji, które celowo żądają nowych połączeń lub zabraniają ponownego użycia, chyba że zadanie tego wymaga. Sprawdź rzeczywiste zachowanie transferu, zanim uznasz, że krótsze drugie żądanie dowodzi ponownego użycia.
Uważaj na stare przykłady PHP mówiące, że połączenie pozostaje otwarte „do curl_close”. PHP dokumentuje, że curl_close() nie ma żadnego efektu od PHP 8.0 i jest przestarzałe od PHP 8.5. Własność zasobów i czas życia obiektów trzeba rozumieć w wersji PHP, którą wdrażasz.
Timer wysyłający powtarzane żądania, aby utrzymać proxy w cieple, dodaje ruch i nadal nie zapobiegnie zamknięciu zdalnego punktu końcowego. Preferuj normalne zarządzanie połączeniami, ograniczone żądania i jasne zasady ponawiania zamiast obietnicy, że jedno połączenie proxy zawsze przetrwa.