Passa al contenuto principale

10. Cross-Protocol Proxying between CoAP and HTTP (Proxying Inter-Protocollo tra CoAP e HTTP)

CoAP supporta un sottoinsieme limitato delle funzionalità HTTP, e quindi il proxying inter-protocollo verso HTTP è semplice. Ci sono alcune differenze, tuttavia, che devono essere prese in considerazione da un proxy.

10.1. CoAP-HTTP Proxying (Proxying CoAP-HTTP)

Se una richiesta contiene l'opzione Proxy-Uri o Proxy-Scheme con un URI 'http' o 'https', allora l'endpoint CoAP ricevente (il proxy) è richiesto di eseguire l'operazione specificata dal metodo di richiesta sulla risorsa HTTP identificata nell'URI HTTP.

Il proxy esegue la richiesta HTTP per conto del client CoAP e restituisce la risposta al client CoAP. Il proxy deve tradurre il metodo CoAP nel metodo HTTP corrispondente, e tradurre il codice di risposta HTTP nel codice di risposta CoAP corrispondente.

10.1.1. Method Mapping (Mappatura dei Metodi)

  • GET -> GET
  • POST -> POST
  • PUT -> PUT
  • DELETE -> DELETE

10.1.2. Response Code Mapping (Mappatura dei Codici di Risposta)

I codici di risposta sono mappati nel modo più diretto possibile. Ad esempio, 200 OK diventa 2.05 Content, 404 Not Found diventa 4.04 Not Found, ecc.

10.2. HTTP-CoAP Proxying (Proxying HTTP-CoAP)

Se il Request-URI di una richiesta HTTP contiene un URI "coap" o "coaps", allora l'endpoint HTTP ricevente (il proxy) è richiesto di eseguire l'operazione specificata dal metodo di richiesta sulla risorsa CoAP identificata dall'URI.

Il proxy esegue la richiesta CoAP per conto del client HTTP e restituisce la risposta al client HTTP. Come per il proxying CoAP-HTTP, il proxy deve tradurre i metodi e i codici di risposta.

10.2.1. Method Mapping (Mappatura dei Metodi)

  • GET -> GET
  • POST -> POST
  • PUT -> PUT
  • DELETE -> DELETE

10.2.2. Response Code Mapping (Mappatura dei Codici di Risposta)

I codici di risposta sono mappati nel modo più diretto possibile. Ad esempio, 2.05 Content diventa 200 OK, 4.04 Not Found diventa 404 Not Found, ecc.

10.2.3. Media Type Mapping (Mappatura dei Tipi di Media)

Il proxy deve tradurre i tipi di media Internet (usati in HTTP) in Content-Format CoAP (interi), e viceversa. Se un proxy non riconosce o non può mappare un tipo di media, deve restituire un errore appropriato (ad esempio, 415 Unsupported Media Type o 4.15 Unsupported Content-Format).

10.3. URI Mapping (Mappatura URI)

Gli URI devono essere mappati tra gli schemi http/https e coap/coaps. Questo di solito comporta la copia dei componenti dell'URI (host, porta, percorso, query) da uno schema all'altro.