GET-ը կարող է նույնականացվել փրոքսիի միջոցով, մինչդեռ POST-ը կամ PUT-ը ձախողվում է չկրկնվող մարմնի կամ հետշրջելու սխալով։ Հաշիվը կարող է ճիշտ լինել. նույնականացման փոխանակումը կարող է պահանջել ևս մեկ հարցում այն բանից հետո, երբ հաճախորդն արդեն սպառել է վերբեռնումը։

Մարմնի աղբյուրըԿրկնման ընտրություն
Փոքր վերջավոր մարմինՍահմանափակ բուֆերը կարող է պահել դրա բայթերը։
Որոնելի ֆայլՀաճախորդի աջակցվող հետշրջման ինտերֆեյսը կարող է այն դարձնել կրկնելի։
Գեներատոր, խողովակ կամ ուղիղ արտադրողՄեկանգամյա աղբյուրը կարող է պահանջել այլ ձևավորում։

libcurl-ը փաստագրում է որոնման հետկանչներ այնպիսի օգտագործումների համար, ներառյալ բազմափուլ նույնականացումը։ Jersey-ն առաջարկում է բուֆերացված և մասնատված էությունների մշակման ռեժիմներ՝ կախված միակցիչի վարքից։ Մեկ Jersey 2 Apache միակցիչի օրինակ ցույց է տալիս բուֆերացված կարգավորումը։ Դրանցից ոչ մեկը անսահմանափակ հիշողության մեջ վերբեռնումները հարմար չի դարձնում։

Վերարտադրեք ձախողվող մեթոդը և մարմնի աղբյուրը։ Նախապատրաստական GET-ը կրկնելու վերբեռնում չունի և չի ապացուցում, որ ավելի ուշ վերբեռնումը կիսում է դրա կապը կամ նույնականացման վիճակը։ Նոր նպատակակետը, հաճախորդի օբյեկտը կամ կապի քաղաքականությունը կարող են փոխել դա։ Ֆայլի վրա հիմնված մարմինը և ուղիղ հոսքը նույնպես տարբերվում են, նույնիսկ երբ նրանց նմուշային տեքստը նույնն է։

Եթե բուֆերացնում եք, սահմանեք դրա չափի սահմանը, պահման վայրը և կյանքի տևողությունը։ Միաժամանակյա վերբեռնումները բազմապատկում են ծախսը, և զգայուն տվյալները մնում են այնտեղ, որտեղ պահվում է բուֆերը։

Նախնական նույնականացում հայտնի համատեղելի փրոքսիի մոտ կարող է խուսափել մեկ սկզբնական մարտահրավերից։ Այն չի կարող բացառել յուրաքանչյուր հետագա նույնականացման փուլ, վերահասցեավորում կամ փակ կապ, որոնք կարող են պահանջել ևս մեկ փորձ։

Միասին պահեք փրոքսիի պատասխանը, մարմնի սպառման կետը և կրկնման սխալը։ Այնուհետև տարբերակեք արձանագրության կրկնությունը անորոշ հավելվածի արդյունքից. ներկայացումը կարող է մշակվել նախքան դրա պատասխանի կորուստը։ Նորից ուղարկելուց առաջ հետևեք նպատակակետի idempotency կանոններին։

Առնչվող հոդվածներ