A letöltési URL helyes, de a megosztott proxy még mindig tárolt válasszal rendelkezik. Ha a műveletnek az eredettel validált válaszra van szüksége, tegye ezt a feltételt a kérésre:

from urllib.request import ProxyHandler, Request, build_opener
import shutil

opener = build_opener(ProxyHandler({
    "https": "http://proxy.example:8080",
}))
request = Request(download_url, headers={"Cache-Control": "no-cache"})
with opener.open(request, timeout=15) as response:
    shutil.copyfileobj(response, output)

Ez a részlet feltételezi, hogy az alkalmazás bináris kimeneti adatfolyammal rendelkezik, és HTTPS download_urlt biztosít. Engedélyezett nyilvános letöltés proxy-hitelesítés nélküli kipróbálásához használjon HTTP-végpontjelöltet a HTTP-proxylistáról az openerben; a kérés gyorsítótár-követelménye változatlan marad. Megtartja az erőforrás eredeti URL-jét, miközben arra kéri a kérés útvonalán lévő gyorsítótárakat, hogy újrafelhasználás előtt validáljanak.

A validálás újrahasznosíthatja a tárolt bájtokat

A no-cache fejlécet kapó megfelelő gyorsítótár nem tudja teljesíteni ezt a kérést tárolt válaszból az eredettel való sikeres validálás nélkül. Az eredet megerősítheti, hogy a tárolt reprezentáció továbbra is érvényes, így a műveletnek nem kell újraküldenie egy változatlan fájlt az eredetről.

A kérés max-age=0 értéke életkori korlátot fejez ki. Akkor hasznos, ha az alkalmazás olyan választ szeretne, amely nem régebbi ennél a korlátnál, de nem a tárolás tilalma. Az éppen létrejött válasz megfelelhet neki.

Véletlenszerű lekérdezési paraméter hozzáadása más cél-URI-t kér. Ez újabb gyorsítótár-bejegyzést eredményezhet, vagy akár megváltoztathatja az alkalmazás válaszát. Csak akkor használjon lekérdezési paramétert, ha az az erőforrás szánt felületének része.

A szokásos HTTPS CONNECT esetén az alagútproxy nem látja ezt a fejlécet a TLS-en belül. A szabályzat ettől még eljuthat az eredethez és a visszafejtett HTTP-cserét kezelő gyorsítótárakhoz. Ellenőrizze, hol él valójában a tárolt válasz, mielőtt az alagútnak tulajdonítaná.

Kapcsolódó cikkek