Reintents d'autenticació pel proxy i cossos de pujada no repetibles
Enteneu per què els reintents d'autenticació poden exposar un flux de pujada d'un sol ús, i trieu deliberadament un emmagatzematge limitat o contingut repetible.
Un GET es pot autenticar a través d'un proxy mentre que un POST o PUT falla amb un error de cos no repetible o de rebobinatge. El compte pot ser correcte: un intercanvi d'autenticació pot requerir una altra sol·licitud després que el client ja hagi consumit la pujada.
| Origen del cos | Opció de repetició |
|---|---|
| Cos petit i finit | Un búfer limitat pot conservar-ne els bytes. |
| Fitxer cercable | La interfície de rebobinatge admesa pel client pot fer-lo repetible. |
| Generador, canonada o productor en directe | Una font d'un sol ús pot requerir un altre disseny. |
libcurl documenta callbacks de cerca per a usos com l'autenticació multipàs. Jersey ofereix modes de processament d'entitats amb búfer i fragmentats subjectes al comportament del connector. Un exemple de connector Jersey 2 Apache mostra la configuració amb búfer. Cap dels dos fa apropiades les pujades il·limitades en memòria.
Reproduïu el mètode i l'origen del cos que fallen. Un GET preparatori no té cap pujada per repetir i no demostra que una pujada posterior comparteixi la seva connexió o estat d'autenticació. Una destinació, un objecte de client o una política de connexió nous poden canviar-ho. Un cos basat en fitxer i un flux en directe també difereixen encara que el seu text de mostra sigui el mateix.
Si feu servir búfer, definiu-ne el límit de mida, la ubicació d'emmagatzematge i la vida útil. Les pujades simultànies multipliquen el cost, i les dades sensibles romanen allà on es guarda el búfer.
Autenticació prèvia a un proxy compatible conegut pot evitar un repte inicial. No pot excloure cada ronda d'autenticació, redirecció o connexió tancada posterior que pugui exigir un altre intent.
Manteniu junts la resposta del proxy, el punt de consum del cos i l'error de repetició. Després distingiu la repetició de protocol d'un resultat d'aplicació incert: un enviament pot haver-se processat abans que es perdés la seva resposta. Seguiu les regles d'idempotència de la destinació abans de tornar-lo a enviar.