NOTE: This covers configuration for the EntityResource, a REST plugin that core provides for content entities. Development of other REST services is covered elsewhere; see for example the Develop for Drupal guide Working with REST Server.
What is REST?
Web Services make it possible for other applications to read and update information on your site via the Web. REST is one of a number of different ways of making Web Services available on your site. In contrast to other techniques such as SOAP or XML-RPC, REST encourages developers to rely on HTTP methods (such as GET and POST) to operate on site resources.
If you are new to REST, you can find out more about HTTP methods, and other REST topics such as media types, and hypermedia, in the More info on REST section.
REST in Drupal 8 Core
In Drupal 8 core, interactions with content entities are supported via a REST interface. The REST module is extensible, and modules that wish to offer other services can implement Resource Plugins. Such extension is not covered here.
By default, the supported HTTP methods for entities are GET, POST, PATCH and DELETE.
REST module depends on the serialization module, which provides JSON and XML representations by default. To get other serializations, you can enable modules such as the HAL module.