REST, which stands for Representational State Transfer, is a set of guidelines for how to transmit information on the web in a way that can handle all of the trillions of variations in a clean, organized way.
By clearly defining what each piece of information on the web is, establishing a limited set of actions that can be taken, and dictating what technology can be used, REST creates a straightforward and universally adaptable way to handle what would otherwise be a big mess.
REST says that in the world of computers there are resources. Anything can be a resource: a photo of Ryan Gosling, an angry comment, a Dora the Explorer video, and a quote by President Obama are all resources. You can think of resources as individual pieces of content on the web.
The web is made up of a whole bunch of representations of resources. You can think of representations as content holders, commonly known as websites. These representations come in two main formats: a web page that people can look at (usually an HTML file) or a file of data that machines can understand (often XML). Every representation of a resource (every webpage) has a discrete location where you can always find it, its URL.
Now that we have defined what is on the internet, we are then allowed to take only one of four actions:
- You can GET the information. When you load www.skillcrush.com you will get a list of tech terms.
- You can POST the information, meaning you can create new information. When you send someone an email you literally post them the email.
- You can PUT the information, which is internet speak for updating it. When you update your Facebook profile you are putting new information there.
- You can DELETE the information. When you delete a Tweet, it’s gone.
And that’s it! The whole internet, governed by a small handful of rules.
The beauty of REST is in its limitations, the beauty of the internet is that within those limitations there are endless possibilities.
Cocktail Party Fact
REST was originally proposed by Roy Fielding when he was a graduate student in Computer Science at the University of California, Irvine. Despite the fact that the aim of REST is to create a simple, standardized way to handle things on the web, it’s one of the most often confused technological concepts.
Fortunately, this confusion has inspired lots of different people to come up with creative ways of explaining it. We encourage you to read some of the fun REST explanations, such as Ryan Tomayko’s How I Explained REST to My Wife, as well as some of the more complicated ones, such as this one, which is ironically titled A Brief Introduction to REST.
And if you are feeling particularly adventurous, you can go to the original source itself—Fielding’s entire dissertation on the subject can be found here.