curl -N lub --no-buffer wyłącza buforowanie strumienia wyjściowego curl. Może to pomóc zdiagnozować opóźnione wyjście bez zmiany polityki buforowania proxy lub serwera.

curl --proxy http://proxy.example:8080 --noproxy '' --no-buffer --max-time 30 https://example.com/stream

Aby porównać przez publiczne proxy, wybierz punkt końcowy HTTP z listy proxy HTTP. Użyj rzeczywistego adresu URL swojego strumienia i wybierz zamierzony limit. Pusta lista pomijania utrzymuje to porównanie na wybranej trasie proxy.

Przybycie, dekodowanie i wyświetlanie

Serwer może generować przyrostowe bajty, pośrednik może je gromadzić, biblioteka klienta może odczytać całe ciało, a przeglądarka może odroczyć renderowanie. Porównuj pierwsze użyteczne bajty i dalszy postęp tam, gdzie kontrolujesz ścieżkę. Czas malowania i łączny czas serwera nie wskazują, kiedy dociera ciało.

W Guzzle sprawdź osobno strumieniowanie i zużycie ciała. Kompresja dodaje etap dekodowania. Zmiana momentu pojawienia się zdekodowanego wyjścia sama w sobie nie dowodzi, że proxy jest komponentem buforującym.

Co widzi pośrednik

Nieprzezroczyste proxy CONNECT nie może analizować wewnętrznych odpowiedzi HTTPS jak zwykłego HTTP. Autoryzowana usługa inspekcji TLS ma inną widoczność, więc sam HTTPS nie dowodzi braku inspekcji.

Po zidentyfikowaniu etapu oczekiwania użyj mechanizmów strumieniowania obsługiwanych przez ten komponent. Dyrektywy reverse proxy nie dotyczą automatycznie forward proxy; flaga wyjścia curl zmienia tylko własną część ścieżki.

Powiązane artykuły