कोई विधि सुरक्षित होती है यदि वह सर्वर की स्थिति में कोई परिवर्तन नहीं करती है: GET, HEAD और OPTIONS। कोई विधि आइडम्पोटेंट होती है यदि एक ही अनुरोध को कई बार करने पर वही प्रभाव होता है जो उसे एक बार करने पर होता है: GET, HEAD, OPTIONS, PUT और DELETE। प्रत्येक सुरक्षित विधि आइडम्पोटेंट होती है; इसका विपरीत सत्य नहीं है, क्योंकि DELETE करने पर स्थिति में परिवर्तन होता है और फिर भी वह आइडम्पोटेंट बनी रहती है।
इन्हीं विशेषताओं के कारण स्वचालित पुनः प्रयास संभव हो पाते हैं। एक प्रॉक्सी, ब्राउज़र या HTTP लाइब्रेरी बिना पूछे ही टाइमआउट के बाद एक आइडम्पोटेंट अनुरोध को पुनः प्रयास कर सकती है, क्योंकि इसे दोहराने से स्थिति और खराब नहीं हो सकती। POST और PATCH न तो सुरक्षित हैं और न ही आइडम्पोटेंट, यही कारण है कि कोई भी आपके लिए इनका पुनः प्रयास नहीं करता — और इसीलिए एक आइडम्पोटेंसी-की हेडर मौजूद है, जो POST को वह विशेषता प्रदान करता है जो उसमें स्वाभाविक रूप से नहीं होती।
आइडम्पोटेंट का अर्थ है "returns the same response" । इसका अर्थ है सर्वर पर समान *प्रभाव*। एक ही संसाधन को दूसरी बार डिलीट करने पर भी आइडम्पोटेंट माना जाएगा, भले ही पहली बार डिलीट करने पर 204 और दूसरी बार डिलीट करने पर 404 मिले: अंतिम स्थिति - संसाधन हट गया - एक समान होगी।
`GET /starfleet/v1/tribbles` एक जानबूझकर बनाया गया एंटी-पैटर्न है: एक ऐसा GET अनुरोध जो हर बार पढ़ने पर गिनती को दोगुना कर देता है। यह इस बात का सबसे स्पष्ट उदाहरण है कि "safe" होने का मतलब आपको किससे बचाना है।
सभी शब्द · परीक्षण तकनीकें · सभी 39 मॉक REST API
आखरी अपडेट