REST (Representational State Transfer) is an architectural style for building web services. It uses four interface constraints - identification of resources, manipulation of resources through representations, self-descriptive messages, and hypermedia as the engine of application state. Resources in REST can be any information that can be named, including collections. Interactions with resources are done through standard HTTP methods like GET, POST, PUT, and DELETE which map to operations like read, create, update, and delete. HATEOAS constrains clients to follow hyperlinks to discover valid state transitions and next actions.