GET voi todennua välityspalvelimen kautta, kun taas POST tai PUT epäonnistuu ei-toistettavan rungon tai kelauksen virheeseen. Tili voi olla oikein: todennusvaihto voi vaatia vielä yhden pyynnön, kun asiakas on jo kuluttanut lähetyksen.

Rungon lähdeToistovaihtoehto
Pieni rajallinen runkoRajoitettu puskuri voi säilyttää sen tavut.
Haettava tiedostoAsiakkaan tukema kelausrajapinta voi tehdä siitä toistettavan.
Generaattori, putki tai live-tuottajaKertakäyttöinen lähde voi vaatia toisenlaisen suunnittelun.

libcurl dokumentoi hakukutsut muun muassa monivaiheiseen todennukseen. Jersey tarjoaa puskuroidun ja paloitellun entiteettikäsittelyn tilat liittimen käyttäytymisestä riippuen. Jersey 2 Apache -liittimen esimerkki näyttää puskuroidun asetuksen. Kumpikaan ei tee rajoittamattomista muistinsisäisistä lähetyksistä sopivia.

Toista menetelmä ja rungon lähde, jotka epäonnistuvat. Valmistelevalla GET-pyynnöllä ei ole lähetystä toistettavaksi, eikä se todista, että myöhempi lähetys jakaa sen yhteyden tai todennuksen tilan. Uusi kohde, asiakasobjekti tai yhteyskäytäntö voi muuttaa sitä. Tiedostopohjainen runko ja live-virta eroavat myös silloin, kun niiden näyteteksti on sama.

Jos puskuroit, määritä kokoraja, säilytyspaikka ja elinikä. Samanaikaiset lähetykset moninkertaistavat kustannukset, ja arkaluontoiset tiedot jäävät sinne, missä puskuria pidetään.

Ennakkotodennus tunnettuun yhteensopivaan välityspalvelimeen voi välttää yhden alkuhaasteen. Se ei voi sulkea pois myöhempää todennuskierrosta, uudelleenohjausta tai suljettua yhteyttä, joka voi vaatia uuden yrityksen.

Pidä välityspalvelimen vastaus, rungon kulutuspiste ja toistovirhe yhdessä. Erottele sitten protokollan toisto epävarmasta sovellustuloksesta: lähetys on voinut tulla käsitellyksi ennen kuin sen vastaus katosi. Noudata kohteen idempotenssisääntöjä ennen uudelleenlähetystä.

Aiheeseen liittyvät artikkelit