RFC 7252 - The Constrained Application Protocol (CoAP)
- Status: Proposed Standard
- Published: June 2014
- Stream: IETF
- Errata: RFC 7252 Errata
Document Information
- RFC Number: 7252
- Title: The Constrained Application Protocol (CoAP)
- Authors: Z. Shelby, K. Hartke, C. Bormann
- Date: June 2014
- Category: Standards Track
- ISSN: 2070-1721
Abstract
The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine-to-machine (M2M) applications such as smart energy and building automation.
CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc7252.
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
Table of Contents
- 1. Introduction
- 2. Constrained Application Protocol
- 3. Message Format
- 4. Message Transmission
- 5. Request/Response Semantics
- 5.1. Requests
- 5.2. Responses
- 5.3. Request/Response Matching
- 5.4. Options
- 5.5. Payloads and Representations
- 5.6. Caching
- 5.7. Proxying
- 5.8. Method Definitions
- 5.9. Response Code Definitions
- 5.9.1. Success 2.xx
- 5.9.2. Client Error 4.xx
- 5.9.2.1. 4.00 Bad Request
- 5.9.2.2. 4.01 Unauthorized
- 5.9.2.3. 4.02 Bad Option
- 5.9.2.4. 4.03 Forbidden
- 5.9.2.5. 4.04 Not Found
- 5.9.2.6. 4.05 Method Not Allowed
- 5.9.2.7. 4.06 Not Acceptable
- 5.9.2.8. 4.12 Precondition Failed
- 5.9.2.9. 4.13 Request Entity Too Large
- 5.9.2.10. 4.15 Unsupported Content-Format
- 5.9.3. Server Error 5.xx
- 5.10. Option Definitions
- 6. CoAP URIs
- 7. Discovery
- 8. Multicast CoAP
- 9. Securing CoAP
- 10. Cross-Protocol Proxying between CoAP and HTTP
- 11. Security Considerations
- 12. IANA Considerations
- 12.1. CoAP Code Registries
- 12.2. CoAP Option Numbers Registry
- 12.3. CoAP Content-Formats Registry
- 12.4. URI Scheme Registration
- 12.5. Secure URI Scheme Registration
- 12.6. Service Name and Port Number Registration
- 12.7. Secure Service Name and Port Number Registration
- 12.8. Multicast Address Registration
- 13. Acknowledgements
- 14. References
- Authors' Addresses
Appendices
Related Resources
- Official RFC: RFC 7252
- DataTracker: RFC 7252 Info
- Errata: RFC Editor Errata