ПредишенСледващото

idempotency

Idempotency - това е смешно дума, която често чука хора от коловоз. Idempotency изглежда понякога объркващо понятие, поне ако се съди по академично определение.

От гледна точка на експлоатацията RESTful услуги (или услуга повикване) на е idempotent когато клиентите могат да направят едно извикване на няколко пъти за един и същ резултат, работи като "сетер" на език за програмиране. С други думи, създаването на голям брой еднакви заявки има същия ефект като една заявка. Имайте предвид, че докато idempotent операции произвеждат един и същ резултат на сървъра (нежелани реакции), самата отговорът не може да бъде същият (например, състоянието на ресурсите може да се променя между заявките).

Методи ЩЕ и изтриване са idempotent по дефиниция. Въпреки това, налице е протест на метода изтриете. Проблемът е, че една успешна DELETE заявка се връща състояние 200 (OK) или 204 (без съдържание), но следващи заявки винаги ще връщат 404 (Not Found), освен ако услугата не е конфигуриран за "етикет" на ресурса като дистанционно без всъщност да извадите. Каквото и да беше, когато услугата действително изтрива ресурса, следващата покана няма да намерите на този ресурс и извежда състояние 404 на сървъра след всяко повикване, за да изтриете едно и също, но с различни отговори.

Методите GET, участници, опциите и следа решени да бъдат безопасни, което също го прави idempotent. Прочетете за раздела за сигурност по-долу.

безопасност

Опростенчески, безопасност означава, че викането на метода няма странични ефекти. Следователно такива (осигуряване) искания, клиентите могат безопасно да изпълняват многократно без страх от промяна на състоянието на сървъра. Това означава, че услугите трябва да се придържат към определението за сигурност за GET, участници, опциите и операции следа. Не правете това имущество може да доведе до подвеждане на потребителите на услугата, както и да доведе до проблеми за Web кеширане, търсачки и други автоматизирани средства, които по невнимание ще се промени състоянието на сървъра.

По дефиниция, сигурни операции са idempotent, тъй като те водят до един и същ резултат на сървъра.

Безопасни методи се прилагат само за четене операции. Въпреки това, сигурност не означава, че сървърът трябва да се върне на същия резултат всеки път.

Подкрепете проекта - споделете линка, благодаря!