Փրոքսի նույնականացման կրկնվող փորձերը և չկրկնվող վերբեռնման մարմինները
Հասկացեք, թե ինչու նույնականացման կրկնափորձերը կարող են բացահայտել մեկանգամյա վերբեռնման հոսք, և գիտակցաբար ընտրեք սահմանափակ բուֆերացում կամ կրկնելի բովանդակություն։
GET-ը կարող է նույնականացվել փրոքսիի միջոցով, մինչդեռ POST-ը կամ PUT-ը ձախողվում է չկրկնվող մարմնի կամ հետշրջելու սխալով։ Հաշիվը կարող է ճիշտ լինել. նույնականացման փոխանակումը կարող է պահանջել ևս մեկ հարցում այն բանից հետո, երբ հաճախորդն արդեն սպառել է վերբեռնումը։
| Մարմնի աղբյուրը | Կրկնման ընտրություն |
|---|---|
| Փոքր վերջավոր մարմին | Սահմանափակ բուֆերը կարող է պահել դրա բայթերը։ |
| Որոնելի ֆայլ | Հաճախորդի աջակցվող հետշրջման ինտերֆեյսը կարող է այն դարձնել կրկնելի։ |
| Գեներատոր, խողովակ կամ ուղիղ արտադրող | Մեկանգամյա աղբյուրը կարող է պահանջել այլ ձևավորում։ |
libcurl-ը փաստագրում է որոնման հետկանչներ այնպիսի օգտագործումների համար, ներառյալ բազմափուլ նույնականացումը։ Jersey-ն առաջարկում է բուֆերացված և մասնատված էությունների մշակման ռեժիմներ՝ կախված միակցիչի վարքից։ Մեկ Jersey 2 Apache միակցիչի օրինակ ցույց է տալիս բուֆերացված կարգավորումը։ Դրանցից ոչ մեկը անսահմանափակ հիշողության մեջ վերբեռնումները հարմար չի դարձնում։
Վերարտադրեք ձախողվող մեթոդը և մարմնի աղբյուրը։ Նախապատրաստական GET-ը կրկնելու վերբեռնում չունի և չի ապացուցում, որ ավելի ուշ վերբեռնումը կիսում է դրա կապը կամ նույնականացման վիճակը։ Նոր նպատակակետը, հաճախորդի օբյեկտը կամ կապի քաղաքականությունը կարող են փոխել դա։ Ֆայլի վրա հիմնված մարմինը և ուղիղ հոսքը նույնպես տարբերվում են, նույնիսկ երբ նրանց նմուշային տեքստը նույնն է։
Եթե բուֆերացնում եք, սահմանեք դրա չափի սահմանը, պահման վայրը և կյանքի տևողությունը։ Միաժամանակյա վերբեռնումները բազմապատկում են ծախսը, և զգայուն տվյալները մնում են այնտեղ, որտեղ պահվում է բուֆերը։
Նախնական նույնականացում հայտնի համատեղելի փրոքսիի մոտ կարող է խուսափել մեկ սկզբնական մարտահրավերից։ Այն չի կարող բացառել յուրաքանչյուր հետագա նույնականացման փուլ, վերահասցեավորում կամ փակ կապ, որոնք կարող են պահանջել ևս մեկ փորձ։
Միասին պահեք փրոքսիի պատասխանը, մարմնի սպառման կետը և կրկնման սխալը։ Այնուհետև տարբերակեք արձանագրության կրկնությունը անորոշ հավելվածի արդյունքից. ներկայացումը կարող է մշակվել նախքան դրա պատասխանի կորուստը։ Նորից ուղարկելուց առաջ հետևեք նպատակակետի idempotency կանոններին։