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 cosOpció de repetició
Cos petit i finitUn búfer limitat pot conservar-ne els bytes.
Fitxer cercableLa interfície de rebobinatge admesa pel client pot fer-lo repetible.
Generador, canonada o productor en directeUna 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.

Articles relacionats