Cinco conceptos de la Web que todo programador debiese conocer

Cinco conceptos de la Web que todo programador debiese conocer

Nuestras vidas están inmersas totalmente en la Web. Empleamos Internet para prácticamente todo, mas de todas y cada una de las tecnologías y aplicaciones que deja la Red de redes, la parte pertinente a la Web es la más esencial sin duda: motores de búsqueda, páginas de información y ocio, viajes, aplicaciones móviles que toman datos de la Web, aplicaciones de todo género que emplean los protocolos de la Web por debajo para marchar…

Una cosa que no todo el planeta tiene clara es que Internet y la Web no son lo mismo. Internet es más que la Web, que solo es parte de esta, y también incluye asimismo otros muchos servicios como mail, trasferencia de ficheros, protocolos peer-to-peer, o bien la página web oculta TOR por refererir solo unos pocos.

En el artículo he querido reunir cinco conceptos que he comprobado que bastante gente no tiene claros o bien ni tan siquiera conoce mas que son esenciales para comprender la Web. Realmente, mezclados por el medio hay aun alguno más que asimismo es esencial. He procurado sostener unas descripciones fáciles y breves mas con la información suficiente para conocer lo mínimo que se debe saber sobre cada uno de ellos.

En mi entender todos estos conceptos deberían cuando menos sonarle a la gente de a pié, los usuarios de la WWW. Mas todos y cada uno de los programadores deberían conocerlos bien. Aun aquellos que no programan particularmente para la página web. Creo que habrían de ser considerados “cultura general básica” imprescindible para cualquiera que se dedique de alguna forma al planeta de las Tecnologías de la Información.

A ver qué te semejan a ti…

1.- HTTP

Hyper-Text Transfer Protocol o bien Protocolo de Trasferencia de Hipertexto. Es el protocolo que emplean los navegadores y los servidores web para comunicarse. Se fundamenta en el protocolo de menor nivel TCP/IP.

Su funcionamiento se fundamenta en un esquema de solicitud y contestación, afín a lo que vamos a ver entonces en el término “DNS” (ver más adelante). Como muchos otros protocolos que datan de los comienzos de Internet (como SMTP, POP, TELNET…) una peculiaridad de HTTP es que está basado en texto, o sea, lo que se transmite entre el usuario y el servidor es texto. Esto es debido a que en un inicio estaba concebido para trasmitir páginas de texto y además de esto dejaba la inspección directa de los mensajes para depurar fallos. Esto causa que para poder trasmitir otro género de contenidos como imágenes o bien vídeos, se deban codificar anteriormente utilizando ciertos métodos tolerados (como MIME, Quoted-Printable o bien Base64), siendo decodificados por el navegador o bien el usuario que los recibe.

Su primera versión documentada, la 0.9, apareció en mil novecientos noventa y uno, mas no fue hasta mil novecientos noventa y seis cuando se aprobó la versión diez. En el mes de enero de mil novecientos noventa y siete de lanzó la versión once que es la que todavía se emplea en la actualidad (si bien fue cambiada por última vez en dos mil catorce). hoy día están desarrollando la versión dos.0 del protocolo y está cerca de ser terminado pues ya hay una versión final propuesta desde el diecisiete de febrero de dos mil quince, a falta de aprobación.

Esta nueva versión está ya soportada por prácticamente todos los navegadores, con lo que su implementación se espera que sea rapidísima. Además de esto se ha desarrollado de forma que sea compatible con lo que existe en nuestros días, de forma que los desarrolladores tampoco deban

hacer grandes sacrificios para amoldarse. Sus ventajas van a ser sobre su alta velocidad, en tanto que entre otras muchas cosas evitará tener que lanzar muchas conexiones independientes al servidor, incorporará compresión de cabeceras. la descarga paralela de recursos, el multiplexado de datos y la priorización automática de solicitudes.

dos.- Query String

La Query String o bien cadena de consulta es la una parte de un URL (dirección web), que contiene datos auxiliares para la página que se pide, y que no pude incluir en la propia senda. Por poner un ejemplo, en este URL:

https://www.google.es/?q=campusmvp

la parte que va al final, tras la interrogación, es la query string. En este caso específico señala un factor llamado “q” y un valor “campusmvp” que se le pasan al resto de la dirección. La página que recibe esta información en el servidor es capaz de leer y también interpretar estos factores para hacer algo con ellos, en un caso así buscar “campusMVP” en Google.

Es posible mandar más de un factor en la cadena de consulta, en tal caso cada pareja de clave y valor se aparta del resto utilizando el símbolo “&” (que se lee “et” o bien “ampersand”). Por ejemplo:

https://www.google.es/?q=campusmvp&tbm=vid

En un caso así se le pasan 2 factores, el precedente con el término de busca, y uno auxiliar llamado “tbm” cuyo valor es “parra” y que en un caso así particularmente señala a Google que debe buscar vídeos relacionados con el término precedente.

En el query string puede ir cualquier información textual, mas hay que tomar en consideración que ciertos caracteres no pueden ir representados en su forma normal. Por servirnos de un ejemplo, si deseas incluir un espacio debes mudarlo por un “+” o bien un ” por ciento 20″, los caracteres singulares de un URL como la almohadilla o bien el ampersand se deben codificar asimismo, y hay otros caracteres reservados que se deben convertir. Al proceso de codificar estos caracteres singulares se le llama “URL Encoding”.

La longitud máxima de datos que se pueden incluir la cadena de consulta no está limitada por el estándar, que en verdad sugiere un mínimo de ocho.000 octetos (esto es, algo menos de ocho Kb de datos). No obstante hay que tener en consideración que los servidores o bien los propios navegadores pueden tener otros límites. Por poner un ejemplo, las versiones viejas de IE aguantaban un máximo de dos mil cuarenta y ocho caracteres (dos Kb). Normalmente no es práctico ni aconsejable emplear cadenas más largas de esta longitud. Si las precisásemos sería mejor emplear otro procedimiento para mandar la información al servidor (por servirnos de un ejemplo el procedimiento POST, ver siguiente apartado).

tres.- Verbos HTTP

Asimismo conocidos como métodos HTTP. Es la primera instrucción que se manda al servidor a lo largo de una solicitud con el protocolo HTTP (el protocolo empleado para servir las webs). Se trata de la acción que queremos efectuar en el servidor. Las solicitudes se efectúan detallando el verbo y el identificador del recurso, por ejemplo:

GET /catalogo/Product-Técnicas-avanzadas-para-programadores-JavaScript_206.aspx

En un caso así el verbo es “GET” (el más frecuente) y lo que hace es apuntar que se quiere conseguir el recurso detallado, en un caso así la página de un producto de nuestra tienda (las solicitudes se mandan contra un servidor determinado, ver DNS ya antes).

El procedimiento empleado es esencial por el hecho de que cada uno de ellos implica una acción diferente e inclusive puede determinar de qué forma se manda la información al servidor (por servirnos de un ejemplo con el procedimiento POST).

Los métodos definidos en la versión diez de HTTP eran:

GET: conseguir información

POST: mandar información

HEAD: conseguir lo mismo que con GET mas solo las cabeceras, sin el cuerpo. Ahorra ancho de banda cuando solo se quiere información básica de la página.

La versión once del protocolo agregó cinco métodos adicionales:

PUT: sirve para apuntar que la información que se manda debe guardarse.

DELETE: señala que se debe borrar o bien quitar el recurso indicado.

OPTIONS: pide que el servidor informe de qué verbos HTTP aguanta para el URL indicado. Si se pone un “*” como recurso devuelve los que aguanta de forma genérica y no particularmente en un recurso específico.

TRACE: sirve para diagnosticar la solicitud y revisar que no se ha cambiado por la parte de los nodos intermedios por los que viaja hasta llegar al servidor.

CONNECT: transforma la conexión en un túnel TCP/IP transparente, por norma general para hacer comunicaciones cifradas con SSL.

cuatro.- DNS

Domain Name Server, son los servidores y el nombre del protocolo que se hace cargo de traducir nombres de dominio de páginas Web en direcciones IP de los servidores que las sirven. De esta manera, por servirnos de un ejemplo, www.google.com se corresponde con la dirección IPv6 “2a00:1450:4002:802::1013”, que identifica a los servidores del buscador de forma única en Internet.

Veamos qué sucede precisamente desde el momento en que se escribe en la barra del navegador una dirección hasta el momento en que se visualiza la página deseada, y exactamente en qué punto intervienen los servidores de nombres.

Observemos para esto el próximo diagrama que explica a vista de pájaro qué ocurre en el momento en que un usuario pide una página en su navegador:

BasicHTTP

Como podemos ver, los pasos básicos implicados son los siguientes:

El usuario escribe en su navegador la dirección de la página que quiere descargar/visitar, o bien es dirigido a ella por medio de un link en otra página (por servirnos de un ejemplo, desde un buscador).

El navegador consulta a un servidor DNS la dirección IP del servidor con el que deseamos comunicarnos. Cada máquina conectada a Internet tiene un identificador único (afín en término a un teléfono) que la identifica en frente de todas las otras. El navegador debe conocer ese “número” identificativo para poder conectarse y pedir que le sirva el recurso que nos resulta de interés. El servidor DNS devuelve en consecuencia al navegador la dirección IP única del servidor al que nos queremos conectar.

El navegador pide al servidor de la dirección conseguida en el paso precedente el recurso que desea descargar. Por servirnos de un ejemplo, la página por defecto de Google, alojada en uno de los servidores de la compañía (Nota técnica: en general se emplea el puerto ochenta para conectarse al servidor).

El servidor Web devuelve al navegador el contenido de la página deseada (o bien un fallo en el caso de no estar libre). El protocolo usado para descargar los recursos que son parte de una página Web se llama HTTP, y es el acrónimo de HyperText Tranfer Protocol o bien, en castellano, Protocolo de Trasferencia de HiperTexto. El navegador recibe ese contenido utilizando HTTP, y lo procesa para poder visualizarlo en la pantalla del usuario.

Evidentemente esto tiene aún más complicación y existen muchos detalles de bajo nivel que se han dejado fuera a propósito, mas es conveniente conocer este funcionamiento básico si deseamos comprender bien el funcionamiento de la Web.

cinco.- CDN

Una CDN es una red de distribución de contenidos o bien Content Delivery Network. En el momento en que un usuario pide una página o bien cualquier otro recurso a un servidor web, se establece una conexión entre el navegador y el servidor para percibir los datos. Por rapidísima que sea esta conexión entre los dos, y todavía suponiendo que se lograra la máxima velocidad posible, hay una restricción física en la velocidad con la que puede llegar esa información desde determinado punto al otro. De esta forma, si nuestro servidor está en España y se conecta alguien desde el país nipón, la información debe recorrer miles y miles de quilómetros hasta llegar de un extremo al otro de la conexión, además de que influirá la calidad de las conexiones intercontinentales de Internet.

Por todo ello, lo idóneo sería siempre y cuando pudiéramos tener el servidor lo más cerca posible de los usuarios. Si nuestra base de usuarios está en España, lo mejor es tener el servidor situado en Europa (aparte de haber requisitos legales por cuestiones de protección de datos). Si tenemos un mercado fuerte en Asia, entonces mejor situar el servidor en esa zona.

Mas ¿qué sucede si nuestro sitio tiene usuarios en el mundo entero y debemos atenderlos con la mayor velocidad posible? ¿Dónde ponemos el servidor?

La contestación viene de la mano de las Redes de distribución de contenidos. Se trata de un servicio que ofrecen ciertas grandes empresas de Internet como Amazon, Microsoft o bien Rackspace entre otros muchos, que lo que hace es sostener acompasados nuestros contenidos en servidores situados por todo el planeta.

De esta forma, en el momento en que un usuario se conecta a nuestro sitio, la CDN advierte su localización y le sirve los contenidos desde el servidor que se halle más próximo, acelerando mucho la descarga y logrando una mejor experiencia para los usuarios.

5 cosas que deben saber los programadores web