Genaugenommen reden wir vom RFC 7252 Constrained Application Protocol, einem auf das Web spezialisiertem Protokoll für Ressourcen beschränkte Hardware (schwacher Prozessor, wenig Speicher, …) und Netzwerkknoten aus der Anwendungswelt von IoT.
Es basiert auf einer REST Architektur und wurde speziell für die Bedürfnisse einer M2M (Machine to Machine) Kommunikation erweitert. Coap setzt auf das Netzwerkprotokoll UDP und wurde zusätzlich so gestaltet, dass eine Nachricht ohne großen Aufwand auf eine normale REST Schnittstelle umgeleitet werden kann. So wurden die vier Grundfunktionen von REST (Get, Post, Put, Delete) als Aktionen in CoAP übernommen, ergänzt um weitere Funktionen.
Anders als bei REST, können die vier Standardoperationen auch zu einer langanhaltenden, zustandsbehafteten Kommunikation genutzt werden. Wird das Observe Flag im Header einer CoAP Nachricht gesetzt, wird zuerst die gewünschte Ressource übertragen. Anschließend kann der Server aber bei Änderungen der Ressource diese sofort wieder an den Client übertragen, ohne dass dieser erneut danach fragt. Beide Kommunikationspartner können gleichermaßen die „Beobachtung“ beenden.
Da CoAP nicht auf TCP basiert, sind SSL und TLS nicht einfach zu nutzen. Um trotzdem eine Verschlüsselung zu bieten nutzt CoAP „Datagram Transport Layer Security“ (DTLS) 15. Dieses basiert weitestgehend auf TLS und bietet den Clients eine RSA oder AES Verschlüsslung.
Mehr Infos auf der offiziellen CoAP Seite