इस विषय पर सोचने का मूल तरीका इस प्रकार है:
एक यूआरआई एक संसाधन पहचानकर्ता है जो विशिष्ट रूप से संसाधन TYPE के विशिष्ट उदाहरण की पहचान करता है। जीवन में हर चीज की तरह, हर वस्तु (जो किसी प्रकार का एक उदाहरण है) में ऐसे गुण होते हैं जो या तो समय-अपरिवर्तनीय या अस्थायी होते हैं।
ऊपर के उदाहरण में, एक कार एक बहुत ही ठोस वस्तु है जिसमें मेक, मॉडल और VIN जैसे गुण हैं - जो कभी नहीं बदलते हैं, और रंग, निलंबन आदि जो समय के साथ बदल सकते हैं। इसलिए यदि हम समय के साथ (अस्थायी) बदल सकने वाली विशेषताओं के साथ यूआरआई को एनकोड करते हैं, तो हम एक ही वस्तु के लिए कई यूआरआई के साथ समाप्त हो सकते हैं:
GET /cars/honda/civic/coupe/{vin}/{color=red}
और वर्षों बाद, यदि इसी कार का रंग बदलकर काला कर दिया जाए:
GET /cars/honda/civic/coupe/{vin}/{color=black}
ध्यान दें कि कार का उदाहरण स्वयं (ऑब्जेक्ट) नहीं बदला है - यह सिर्फ रंग है जो बदल गया है। एक ही वस्तु उदाहरण की ओर इशारा करते हुए कई यूआरआई होने से आप कई यूआरआई हैंडलर बनाने के लिए मजबूर होंगे - यह एक कुशल डिजाइन नहीं है, और निश्चित रूप से सहज नहीं है।
इसलिए, यूआरआई में केवल ऐसे हिस्से शामिल होने चाहिए जो कभी नहीं बदलेंगे और जीवन भर उस संसाधन की विशिष्ट पहचान करते रहेंगे। सब कुछ जो बदल सकता है, क्वेरी पैरामीटर के लिए आरक्षित होना चाहिए, जैसे:
GET /cars/honda/civic/coupe/{vin}?color={black}
निचला रेखा - बहुरूपता पर विचार करें।