The OData protocol is used to create Representational State Transfer (REST)-based [REST] data services which enable resources, that are identified by using Uniform Resource Identifiers (URIs) and are defined in an abstract data model, to be published and edited by web clients within corporate networks and across the Internet by using simple Hypertext Transfer Protocol (HTTP) messages.
The Atom Publishing Protocol (AtomPub) [RFC5023] does not define a URI-addressing scheme, a schema for the data content of the resources that the services expose, a format for batching requests, a concurrency policy or mechanism, or alternate data representations. The OData protocol defines a uniform, HTTP-based interface for data services that address these shortcomings of AtomPub. By using this interface, high-level, reusable, general-purpose client libraries and components can consume different services without needing to accommodate custom semantics for each.
In this document, the endpoint that initiates the HTTP connection and sends HTTP request messages is referred to as the client. The entity that responds to the HTTP connection request and sends HTTP response messages is referred to as the server or data service. For the purposes of this document, the terms "server" and "data service" have the same meaning and are used interchangeably.