Ive recently done some research on the REST style. It is quite appealing due to its simplicity, low overhead and the fact that it is being accepted by the major players such as Google, Amazon, Flickr etc.

For those of you who don't much about REST, its basically an architectural style for implementing web services. It advocates the school of thought that everything is a resource, resources are identified by URI's and operations are performed on resources using verbs of the underlying network protocol, in my case HTTP. For operations, REST states that a Create operation must be a POST, an Update a PUT, a Retrieve a GET and a Remove a DELETE. It also states that actions (verbs) are not allowed to be part of the URI.

Now this is all fine and dandy if you are using your web server to consume RESTful services or a software application with a solid networking library but what about web applications? This is where from my rant gives birth! The web browser is the most popular client for web applications and only supports 2 HTTP verbs (POST and GET). What about the other 2 verbs? How are ajax applications and future, silverlight and flex, applications supposed to support the REST paradigm? There needs to be a compromise somewhere either in the REST style or support for additional verbs to be built into web browsers.

Correct me if im wrong but as far as my knowledge goes, Silverlight and Flex are amazing new technologies BUT are limited to the constraints of the browser. They can not go beyond this. So how will RESTful services ever be able to be consumed by web applications unless a proxy server or some other work around is used?

I found this to be most frustrating and what furthur frustrates me is that these new technologies, well at least silverlight, claim they support RESTful services but clearly do not!

Any comments or corrections to my thoughts will be greatly appreciated! But as far as im concerned REST as it stands with current technology is not a viable option for web applications! There needs to be a variation to it so its implementation can be carried out correctly across all web technologies.