# Define REST please or give a definition for an interview que

**URL:** <https://www.ruby-forum.com/t/define-rest-please-or-give-a-definition-for-an-interview-que/80683>\
**Category:** Rails\
**Created:** [December 29, 2006, 10:45pm UTC](https://www.ruby-forum.com/t/define-rest-please-or-give-a-definition-for-an-interview-que/80683 "2006-12-29T22:45:59Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![surf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@surf](https://www.ruby-forum.com/u/surf)\
**Post date:** [December 29, 2006, 10:45pm UTC](https://www.ruby-forum.com/t/define-rest-please-or-give-a-definition-for-an-interview-que/80683/1 "2006-12-29T22:45:59Z")

</div>

I see REST mentioned on some job postings as well as a recommended  
list of questions. I found an extensive definition in the wikipedia,  
[Representational state transfer - Wikipedia](http://en.wikipedia.org/wiki/REST) what seems to stand out is that it is  
stateless, does not really on cookies and is heavily based on cacheing.  
I also see that CRUD, create/read/update/delete and it is compared to  
RPC. There is also references to XML, SOAP and so on which I am very  
familiar with, but not sure how these may apply to REST. I’m not really  
sure what is the best way to answer this question if someone asked me  
in an interview to give them a definition of what REST is ? The full  
wikipedia definition is very long. I recall that there is other ways to  
use state such as encoding information into URL’s and so on. Part of  
the definition seems theoretical and part of it seems to imply certain  
technologies or the lack thereof. I haven’t found a concise definition  
or one that seems easy to get a grasp on as of yet. I am mainly  
interested in regards to Rails.

Someone had emailed me on REST in reagards to doing development on a  
non profit site at one time and it seemed like a dejavu experience as  
if I’d heard of it before but couldn’t remember. It seemed like he was  
advocating like this is the way you should do it, as if it was a  
methodology like OOP, top down design, reusability DRY, etc. The  
wikipedia defintion seems to imply http is REST because it is  
stateless, this confused me a little because I have read in that  
context that that is a problem with the web, that it is stateless, on  
the other hand maybe I am not that up on caching either. My first  
experience with a complex web site was CGI with Perl and the session  
tracking with cookies was very cumbersome. Then I saw how easy you can  
store session info in rails and at first I was quite impressed, but was  
not sure if that was good or bad because I latter found that all the  
session stuff gets stored on the file system by the web server. Does it  
ever delete this stuff ? If you have alot of session data, I guess it  
could use alot of disk over a long period of time.

Anyway, if anyone can simplify understanding of REST and how I would  
answer what it is in so many words or less in an interview I would  
appreciate it.

---

<div class="post-metadata">

**Author:** ![surf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@surf](https://www.ruby-forum.com/u/surf)\
**Post date:** [December 30, 2006, 11:47am UTC](https://www.ruby-forum.com/t/define-rest-please-or-give-a-definition-for-an-interview-que/80683/2 "2006-12-30T11:47:39Z")

</div>

On 29 Dec 2006, at 21:44, surf wrote:

> Anyway, if anyone can simplify understanding of REST and how I would  
> answer what it is in so many words or less in an interview I would  
> appreciate it.

You may like the explanation here:

“How I Explained REST To My Wife”  
[http://naeblis.cx/articles/2004/12/12/rest-to-my-wife](http://naeblis.cx/articles/2004/12/12/rest-to-my-wife)

Regards,  
Andy S.
