1.3 Overview

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.

The OData protocol depends on HTTP [RFC2616] for transfer of all protocol messages and user data and follow or extend the messaging semantics defined in AtomPub [RFC5023].

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.

The use of web-based technologies, such as HTTP, make implementations of this document ideal as a mid-tier service technology for applications, such as Asynchronous JavaScript and XML (AJAX) style applications, Rich Interactive Applications (RIA), and other applications that operate against data that is stored across Internet trust boundaries.