<i>"Don't use query parameters to alter state"
"Don't fall into RPC with your URIs"</i><p>I can see the benefit of doing some of the things on the list, but I never understood what's the motivation behind these two suggestions. What are the practical benefits? (Specifically, what are the benefits for a <i>web application</i>, rather than a web app?)<p>I can give you some <i>considerable</i> benefits of doing the opposite. My favorite URL scheme looks like this: "<a href="http://example.com/?Class.method.id.parts&param=x" rel="nofollow">http://example.com/?Class.method.id.parts&param=x</a>.<p>It enables automatic routing without the need to write explicit, case-by-case routing logic or .htaccess files. It doesn't mess up the base path, so I don't need to do some magic when writing URLs. Moreover, it's <i>straightforward</i>. It's easy to see what's going on on the web pages, in the code and in the logs, because knowing a URL means immediately knowing which controller and action are involved (which is not the case with clever resource-mapping schemes).