express: 6. request

Explicación teórica del objeto request

Georgia O'Keeffe

archivado en: JavaScript / 25 octubre, 2015 / taller:

A lo largo de estas entradas he hablado en varias ocasiones de los objetos request y response. En esta entrada vamos a ver con cierto detalle el primero y en la siguiente el segundo, pero antes que nada vamos a recordar en qué consiste una url, acrónimo de Uniform Resource Locator.

Las urls son las direcciones en la que se encuentran las cosas en Internet. Así, al igual que foo puede vivir en la calle bar nº 33, 2D, escalera 3, código postal 33333, los recursos tienen su propia dirección, que puede ser más o menos compleja. Más o menos, una url completa tendría las siguientes partes:

http://localhost:3000/foo?id=3&subid=77#fragmento4

a) La indicación de qué protocolo se está usando (http, https, file, ftp...).

b) El host, es decir, el servidor donde está alojado, que se muestra por lo general como un nombre (localhost cuando estamos en local, mmfilesi.com, elpais.es...).

c) El puerto. Los servidores tienen diversos puertos que abren o cierran en cada caso. En los ejemplos de esta serie estamos usando el 3000, pero podríamos utilizar otro que no estuviera ocupado, como el 8080.

d) La ruta, path en inglés, en la que se localiza el recurso.

e) Precedida por una interrogación, la llamada querystring, que son una colección de pares clave valor de n elementos separadas por el & que se utiliza para enviar información adicional, como los datos de un formulario.

f) Un fragmento (hash) que no llega al server relacionado con la navegación interna de una web o aplicación web.

Y aún se envía más información cuando se pide (request) algo al servidor, pues como vimos se puede matizar qué se quiere hacer con el recurso solicitado usando un método (verbo) u otro: GET, POST, DELETE, etcétera.

Además, también se envía el mensaje propiamente dicho, en el cual, tanto en el request como en el response, hay dos partes diferenciadas:

a) Header: Por un lado están las cabeceras o headers, en las que el cliente declara algunos datos, como el tipo de recurso que está solicitando (texto html, un json, una imagen...), qué navegador se está usando, el charset de caracteres que espera, como puede ser UTF8, etcétera.

b) Body: el cuerpo de mensaje, que puede contener todo tipo de datos tanto en la petición como en la respuesta.

Bueno, pues después de este repaso rápido cómo se comunican el cliente y el servidor, vamos ya con los objetos request y response.

Request

Como hemos visto, los objetos request y response se pasan como parámetros en distintos métodos relacionados con las rutas. Por ejemplo:

app.get('/foo', function (req, res) {

// hacemos algo

});

Para ir aprendiendo las posibilidades de este objeto, vamos a conocer algunos de sus métodos y atributos según el orden de datos que hay en una url que vimos antes tomando como punto de partida esta dirección:

http://localhost:3000/foo?id=33&yuk=ops!

a) Relacionados con el protocolo

req.protocol: devuelve el protocolo utilizado

res.send(req.protocol);

// http

req.secure: true o false si la conexión es segura (equivale a req.protocol==='https').

b) Con el dominio

req.host: el nombre de dominio que se está solicitando en la url.

res.send(req.host);

// localhost

c) Con la ruta

req.path: el path de la url.

res.send(req.path);

// /foo

d) Con la querystring

req.param('nombreParametro'): devuelve el valor de un parámetro incluido en la query string.

res.send(req.param('id'));

// 33

req.query: la querystring jasonificada.

res.send(req.query);

//{"id":"33","yuk":"ops"}

e) Con las cabeceras

req.headers: un jasonako con todas las cabeceras.

req.accepts([]): el tipo MIME del recurso solicitado

f) Otras

req.ip: la ip del ordenador cliente.

req.xhr: true o false si la petición es ajax.

Bueno, me he dejado algunos métodos y propiedades que veremos más adelante, pero espero que con los mencionados nos hagamos una idea de las posibilidades de este objeto.

|| Tags: , , ,

valoración de los lectores sobre express: 6. request

  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración negativa
  • 4 sobre 5 (1 votos)

¿Te ha parecido útil o interesante esta entrada?
dormido, valoración 1 nadapensativo, valoración 2 un poco sonrisa, valoración 3 a medias guiño, valoración 4 bastante aplauso, valoración 5 mucho

Tú opinión es muy importante, gracias por compartirla!

Los comentarios están cerrados.