10. Cross-Protocol Proxying between CoAP and HTTP (Protokollübergreifendes Proxying zwischen CoAP und HTTP)
CoAP unterstützt eine begrenzte Untermenge der HTTP-Funktionalität, und daher ist das protokollübergreifende Proxying zu HTTP einfach. Es gibt jedoch einige Unterschiede, die von einem Proxy berücksichtigt werden müssen.
10.1. CoAP-HTTP Proxying (CoAP-HTTP-Proxying)
Wenn eine Anfrage die Option Proxy-Uri oder Proxy-Scheme mit einem URI 'http' oder 'https' enthält, wird der empfangende CoAP-Endpunkt (der Proxy) aufgefordert, die durch die Anfragemethode angegebene Operation auf der im HTTP-URI identifizierten HTTP-Ressource auszuführen.
Der Proxy führt die HTTP-Anfrage im Namen des CoAP-Clients aus und sendet die Antwort an den CoAP-Client zurück. Der Proxy muss die CoAP-Methode in die entsprechende HTTP-Methode und den HTTP-Antwortcode in den entsprechenden CoAP-Antwortcode übersetzen.
10.1.1. Method Mapping (Methodenabbildung)
- GET -> GET
- POST -> POST
- PUT -> PUT
- DELETE -> DELETE
10.1.2. Response Code Mapping (Antwortcodeabbildung)
Die Antwortcodes werden so direkt wie möglich abgebildet. Zum Beispiel wird 200 OK zu 2.05 Content, 404 Not Found zu 4.04 Not Found usw.
10.2. HTTP-CoAP Proxying (HTTP-CoAP-Proxying)
Wenn der Request-URI einer HTTP-Anfrage einen URI "coap" oder "coaps" enthält, wird der empfangende HTTP-Endpunkt (der Proxy) aufgefordert, die durch die Anfragemethode angegebene Operation auf der im URI identifizierten CoAP-Ressource auszuführen.
Der Proxy führt die CoAP-Anfrage im Namen des HTTP-Clients aus und sendet die Antwort an den HTTP-Client zurück. Wie beim CoAP-HTTP-Proxying muss der Proxy die Methoden und Antwortcodes übersetzen.
10.2.1. Method Mapping (Methodenabbildung)
- GET -> GET
- POST -> POST
- PUT -> PUT
- DELETE -> DELETE
10.2.2. Response Code Mapping (Antwortcodeabbildung)
Die Antwortcodes werden so direkt wie möglich abgebildet. Zum Beispiel wird 2.05 Content zu 200 OK, 4.04 Not Found zu 404 Not Found usw.
10.2.3. Media Type Mapping (Medientypabbildung)
Der Proxy muss die Internet-Medientypen (die in HTTP verwendet werden) in CoAP-Content-Formate (Ganzzahlen) und umgekehrt übersetzen. Wenn ein Proxy einen Medientyp nicht erkennt oder nicht abbilden kann, muss er einen entsprechenden Fehler zurückgeben (z. B. 415 Unsupported Media Type oder 4.15 Unsupported Content-Format).
10.3. URI Mapping (URI-Abbildung)
Die URIs müssen zwischen den Schemata http/https und coap/coaps abgebildet werden. Dies beinhaltet in der Regel das Kopieren der URI-Komponenten (Host, Port, Pfad, Anfrage) von einem Schema in das andere.