Tech pages/IoT HttpOverXmpp

= Layout =

Introduction
Setting up IoT devices as ordinary HTTP accessible servers, both over IPv4 and IPv6 exposes those devices to the whole internet unless you take special care of the traffic in a router or firewall.

with the usage of the | XEP-0332 HTTP over XMPP extension it is possible to provide a protected pathway to the device.

The XMPP protocol does not have the same problems as HTTP in these regards. It's a peer-to-peer like protocol naturally allowing communication with applications and devices behind firewalls. It also includes advanced user authentication and authorization which makes it easier to make sure unauthorized access to private content is prevented.

Furthermore, with the advent of semantic web technologies and its use in web 3.0 and Internet of Things applications, such applications move even more rapidly into the private spheres of the users, where security and privacy is of paramount importance, it is necessary to use more secure transport protocols than HTTP over TCP.

There are many different types of HTTP-based communication that could be transported


 * Web Content like pages, images, files, etc.
 * Web Forms.
 * Web Services (SOAP, REST, etc.)
 * Semantic Web Resources (RDF, Turtle, etc.)
 * Federated SPARQL queries (SQL-type query language for the semantic web, or web 3.0)
 * Streamed multi-media content in UPnP and DLNA networks.

But instead of looking at all possible HTTP transports and make them transportable over XMPP like | XEP-0072 SOAP Over XMPP, this document ignores the type of content, and instead changes the encoding and decoding the original HTTP requests and responses, building an HTTP-tunnel over an existing XMPP connection.

This making it possible to move existing HTTP applications and move them into new settings without having to change them or opening ports in firewalls. An example would be to access your thermostat (that has a built in web page at your home) from your office without the need for a cloud service in-between.

Added URI
For this to work well there is a need for a new httpx:// HTTPX uri scheme which is easy for browsers to adopt