Najważniejsze
Organizacja była kiedyś tylko wierszem w bazie, który mieścił jedną osobę. Teraz to pełnoprawna strona, którą zarządzasz: zapraszasz współpracownika, nadajesz mu rolę i pozwalasz tworzyć klucze rozliczane na koszt firmy. Proxy Finder przestał też odpowiadać ogólnym komunikatem o wyczerpaniu prób i zaczął wskazywać konkretną przeszkodę, a Browser upewnia się teraz, że za każdym razem przedstawia stronie spójną tożsamość.
Co nowego
Organizacje, którymi naprawdę możesz zarządzać
Dodanie współpracownika wymagało wcześniej kontaktu mailowego, więc zespoły kupowały dwie osobne subskrypcje.
Twoja organizacja ma teraz własną stronę w Dashboardzie z trzema rolami. Właściciel utrzymuje subskrypcję, do której przypisane są klucze, więc jest dokładnie jeden, a własność przekazuje się przez transfer. Administratorzy zarządzają zużyciem, płatnościami i członkami. Członkowie po prostu korzystają z narzędzi. Zaproszenia wysyła się na adres email i działają one także dla osób, które nie mają jeszcze konta.
Każdy w organizacji może tworzyć należące do niej klucze i przenosić do niej klucze prywatne, więc programista nie musi używać osobistego klucza obciążającego jego konto za pracę firmową. Zużycie na kluczu organizacji obciąża plan właściciela, a każde potwierdzenie wskazuje, czyj plan pokrywa koszty. Każdy członek może zmienić nazwę klucza. Regeneracja, wyłączenie i usunięcie są zarezerwowane dla właścicieli i administratorów, ponieważ natychmiast blokują pracę wszystkim korzystającym z danego klucza.
Jeden filtr Owner działa w widokach Overview, Detailed Metrics, Recent Activity oraz na liście kluczy. Sekcje Usage & Limits oraz Billing pozostają prywatne, ponieważ członek zespołu nie powinien mieć wglądu w limity właściciela.
Proxy Finder przestaje zgadywać
Komunikat "Download maxTry limit reached" wyglądał tak samo, niezależnie od tego, czy każdy węzeł wyjściowy był zablokowany, martwy, czy też pobraliśmy właściwą stronę, którą odrzuciła Twoja własna reguła. Te trzy przypadki wymagają zupełnie innych działań.
Nieudane zadanie zawiera teraz attemptReport: ile węzłów nie odpowiedziało, ile zostało odrzuconych przez rozpoznany system ochrony i jakich dostawców, ile odrzucił Twój validate.status, a ile zwróciło HTTP 200 bez widocznych zabezpieczeń i nie przeszło jedynie Twojego validate.data. Dołączone jest także proste podsumowanie tekstowe.
Ta ostatnia wartość jest najważniejsza. Reguła sprawdzająca treść, która nie może znaleźć dopasowania, wyglądała we wcześniejszych pomiarach dokładnie tak samo jak blokada, a żaden retry tego nie naprawi. (Więcej o tym, jak reguły validate decydują o sukcesie.)
Druga kwestia to profil. Proxy Finder rotował węzły wyjściowe, ale nigdy sygnaturę klienta, więc strona blokująca dany profil przeglądarki odrzucała go na każdym proxy w puli. Teraz odrzucenie powoduje zmianę profilu przy retry, który i tak miał nastąpić, więc liczba requestów i kredytów na zadanie pozostaje bez zmian. Jeśli przypiszesz profile na stałe, nic się nie zmienia. Przy najtrudniejszych celach to adres wyjściowy wciąż ma większe znaczenie niż wysyłany profil.
Browser przestaje sobie przeczyć
Pytanie Browsera o User-Agent bywało gorsze niż niepytanie wcale. Trzy warstwy miały własne wersje tego, czym jest dany request, więc jedno zapytanie potrafiło jednocześnie zgłaszać Windowsa, Maca i wersję, której nasza flota w ogóle nie używała. Teraz to jedna wartość, ustalana raz i przekazywana wszędzie: przy starcie, do strony i do workerów uruchamianych przez stronę.
Client hints pochodzą z tego ciągu znaków, więc sec-ch-ua, platforma i navigator.platform są z nim zgodne. Response zwraca dokładnie ten ciąg, który wysłaliśmy, co ma znaczenie, ponieważ pliki cookie clearance są powiązane jednocześnie z węzłem wyjściowym i User-Agentem. Zapytania o renderer zwracają teraz ten sam wynik w dokumencie i w workerze, co eliminuje kolejny ze słabych sygnałów, które się sumują.
Wraz z tym wdrożyliśmy trzy kolejne zmiany:
- Zegar podąża za węzłem wyjściowym. Browser działa w strefie czasowej kraju, w którym znajduje się Twój węzeł wyjściowy, więc strona renderująca lokalny czas pokazuje to, co zobaczyłby użytkownik z tej lokalizacji. Gdy kraj nie jest znany, zegar pozostaje bez zmian.
- WebRTC korzysta z tej samej ścieżki co reszta ruchu. Ustawienie proxy obejmuje to, co przeglądarka wysyła przez TCP. WebRTC nie znajduje się na tej ścieżce, więc strona odpytująca o kandydatów ICE otrzymuje osobną odpowiedź. Browser wyłącza ten mechanizm za każdym razem, gdy request korzysta z węzła wyjściowego.
- Zakotwiczone adresy URL kosztują tyle, ile powinny. Adres URL kończący się na
#reviewspowodował wcześniej każdorazowe przekroczenie limitu czasu. Teraz działa z normalną prędkością.
Tańsze trasy i Dashboard, który liczy precyzyjnie
Imperva wstrzykuje swój skrypt do prawidłowych stron, a nie tylko do stron odmowy, a Auto nie potrafił ich odróżnić, przez co prawidłowe strony były niepotrzebnie przekazywane do przeglądarki. W serwisie wynajmu samochodów oznaczało to 75 kredytów i 27,5 sekundy w sześciu próbach; teraz to jedna próba, 10 kredytów i około sześć i pół sekundy. Niektóre strony zwracają sesję w odpowiedzi odmownej na request bez sesji, a wszystkie cztery silniki natychmiast odsyłają ją przed eskalacją.
Karta kredytów w sekcji Overview pokazywała wszystkie zużyte środki i oznaczała je jako rozliczone. W modelu płatności za sukces wartości te się różnią, a różnica to realne pieniądze, dlatego obie wartości znajdują się teraz na karcie: rozliczone jako główna liczba, zużyte poniżej, w podziale na produkty i łącznie. Karta Requests jest podzielona w ten sam sposób. Okres i szczegółowość to teraz osobne kontrolki, od 30 minut do roku plus zakres niestandardowy, co zastępuje dawny przełącznik oznaczony jako „1D”, który otwierał trzydzieści dni.
W sekcji Playground przycisk przenoszenia parametrów oferuje teraz profil z ostatniego response, więc request wysłany z profilem, którego nie wpisano ręcznie, odtwarza wersję, która zadziałała. Wszystkie parametry znajdują się w sekcji API reference.
Pod maską
Proxy Finder przechowuje dłuższą historię dla każdego hosta: 32 węzły wyjściowe zamiast kilkunastu. W testach A/B na żywo wyniki były porównywalne na prostych celach i lepsze na trudnych, gdzie mediana czasu pobrania strony spadła z 5,5 s do 3,8 s, podczas gdy ogólne opóźnienie w całej infrastrukturze pozostało bez zmian. Jeden cel zachował się odwrotnie i jeszcze nie wiemy dlaczego, dlatego wymaga osobnych pomiarów.
Zadanie, które ma zakończyć się błędem, i tak nim się zakończy. Różnica polega na tym, czy zamkniesz zgłoszenie w minutę, czy spędzisz popołudnie na mierzeniu niewłaściwych rzeczy.