domingo, 15 de noviembre de 2020

Conexiones por HTTP

 En este y los siguientee posts ya entraremos un poco mas en aspectos técnicos de la asignatura. Para empezar, voy a presentar de forma muy resumida el protocolo HTTP, que se emplea en esta práctica, cuyo objetivo final es crear un cliente IoT que envíe datos a una base de datos en la nube.

HTTP (Hypertext Transfer Protocol) es un protocolo perteneciente a la capa de aplicación, que es la capa superior en los modelos OSI y en el protocolo IP. Como su nombre indica, su función es posibilitar la transferencia de recursos de tipo hipertexto. Hipertexto es como se llama a un texto que permite acceder a otros mediante hipervínculos, como puede ser una página web. De esta manera, un navegador es una aplicación que implementa este protocolo, y permite acceder e interactuar con páginas web.

Conociendo este protocolo, se puede acceder a una página sin necesidad de utilizar un navegador. Esto puede ser útil cuando la interacción humana no es necesaria, como el caso que se trabajará posteriormente en este blog, en el que un cliente subirá datos a una base de datos en la nube cada cierto tiempo.

Un mensaje en HTTP se compone de una línea de petición, unas cabeceras, y un cuerpo opcional.

En la línea de petición se especifica el método que indicará la acción que se pretende realizar. Los métodos consisten en verbos en mayúsculas, como GET, POST o DELETE, que tendrán diferentes efectos. También se debe especificar el servidor al que se dirige el mensaje (especificado por una URI), y el recurso al que se quiere acceder dentro del servidor.

En las cabeceras se debe incluir cierta información importante, como el tipo de contenido que se acepta, o el lenguaje preferente. Existen muchas cabeceras, pero no todas son necesarias en todos los mensajes.

El cuerpo se puede escribir en muchos formatos, y es el contenido del mensaje que se quiere enviar.

Así, un mensaje simple puede quedar de la siguiente manera.

POST /update HTTP/1.1
Host:api.thingspeak.com
Content-Type:application/x-www-form-urlencoded
Content-Length: 45

api_key=CDOBP0PZ0ZFGMVML&field1=80&field2=184

No hay comentarios:

Publicar un comentario