Ponovni poskusi preverjanja pristnosti prek posrednika in neponovljiva telesa nalaganja
Razumite, zakaj lahko ponovni poskusi preverjanja pristnosti razkrijejo enkratni tok nalaganja, in zavestno izberite omejeno medpomnjenje ali ponovljivo vsebino.
GET se lahko preveri prek posrednika, medtem ko POST ali PUT spodleti z napako neponovljivega telesa ali previjanja. Račun je lahko pravilen: izmenjava preverjanja pristnosti lahko zahteva še eno zahtevo, potem ko je odjemalec nalaganje že porabil.
| Vir telesa | Izbira ponavljanja |
|---|---|
| Majhno končno telo | Omejen medpomnilnik lahko obdrži njegove bajte. |
| Iskljiva datoteka | Vmesnik za previjanje, ki ga odjemalec podpira, ga lahko naredi ponovljivega. |
| Generator, cev ali živi proizvajalec | Enkratni vir lahko zahteva drugačno zasnovo. |
libcurl dokumentira povratne klice iskanja za uporabe, vključno z večstopenjskim preverjanjem pristnosti. Jersey ponuja medpomnjene in razdeljene načine obdelave entitet, odvisno od vedenja konektorja. Primer konektorja Jersey 2 Apache prikazuje medpomnjeno nastavitev. Nobeno od njiju ne naredi neomejenih nalaganj v pomnilniku primernih.
Ponovite metodo in vir telesa, ki spodletita. Pripravljalni GET nima nalaganja za ponovitev in ne dokazuje, da si poznejše nalaganje deli njegovo povezavo ali stanje preverjanja pristnosti. Nov cilj, odjemalski objekt ali politika povezave lahko to spremenijo. Telo, ki temelji na datoteki, in živi tok se prav tako razlikujeta, tudi ko je njun vzorčni tekst enak.
Če medpomnete, določite omejitev velikosti, mesto shranjevanja in življenjsko dobo. Sočasna nalaganja pomnožijo stroške, občutljivi podatki pa ostanejo tam, kjer je medpomnilnik shranjen.
Predhodno preverjanje pristnosti pri znanem združljivem posredniku se lahko izogne enemu začetnemu izzivu. Ne more pa izključiti vsakega poznejšega kroga preverjanja pristnosti, preusmeritve ali zaprte povezave, ki bi lahko zahtevala še en poskus.
Skupaj hranite odgovor posrednika, točko porabe telesa in napako ponavljanja. Nato ločite ponovitev protokola od negotovega rezultata aplikacije: pošiljanje je bilo morda obdelano, preden se je njegov odgovor izgubil. Pred ponovnim pošiljanjem upoštevajte pravila idempotentnosti cilja.