Gjentatte proxy-autentiseringer og ikke-gjentakbare opplastingskropper
Forstå hvorfor gjentatte autentiseringsforsøk kan avdekke en engangs opplastingsstrøm, og velg bevisst begrenset bufring eller gjentakbart innhold.
En GET kan autentisere gjennom en proxy mens en POST eller PUT feiler med en feil om ikke-gjentakbar kropp eller tilbakespoling. Kontoen kan være riktig: en autentiseringsutveksling kan kreve enda en forespørsel etter at klienten allerede har brukt opplastingen.
| Kroppskilde | Valg av gjentakelse |
|---|---|
| Liten endelig kropp | En begrenset buffer kan beholde bytene. |
| Søkbar fil | Klientens støttede tilbakespolingsgrensesnitt kan gjøre den gjentakbar. |
| Generator, rør eller levende produsent | En engangskilde kan kreve en annen utforming. |
libcurl dokumenterer seek-callbacks for bruk, inkludert autentisering i flere trinn. Jersey tilbyr bufret og oppdelt enhetsbehandling avhengig av oppførselen til kontakten. Et eksempel på Jersey 2 Apache-kontakt viser den buffede innstillingen. Ingen av dem gjør ubegrensede opplastinger i minnet hensiktsmessige.
Gjenskap metoden og kroppskilden som feiler. En forberedende GET har ingen opplasting å gjenta, og den beviser ikke at en senere opplasting deler tilkoblingen eller autentiseringstilstanden. En ny destinasjon, klientobjekt eller tilkoblingspolicy kan endre det. En filbasert kropp og en levende strøm er også forskjellige selv når eksempelteksten er den samme.
Hvis du bufret, definer størrelsesgrensen, lagringsstedet og levetiden. Samtidige opplastinger mangedobler kostnaden, og sensitive data blir værende der bufferen oppbevares.
Forhåndsautentisering til en kjent kompatibel proxy kan unngå én innledende utfordring. Den kan ikke utelukke hver senere autentiseringsrunde, omdirigering eller lukket tilkobling som kan kreve et nytt forsøk.
Hold proxy-svaret, punktet der kroppen forbrukes, og gjentakelsesfeilen sammen. Skill deretter protokollgjentakelse fra et usikkert applikasjonsresultat: en innsending kan ha blitt behandlet før svaret gikk tapt. Følg destinasjonens idempotensregler før du sender den igjen.