# HTTP/Recursos
## Localizador de recursos (resource locators)

La dirección de una página es más conocida como la URL, que es un localizador de recursos uniforme. Representa un recurso específico de la web; un ejemplo de una URL sería el de la página http://google.com.co que nos llevaría al recurso principal de la página. En este caso, los recursos son cosas con las que se puede interactuar en el web tales como archivos, imágenes, textos y vídeos.
Estas direcciones se escriben en la barra de direcciones de los navegadores para que éste envíe una solicitud por la red y como culminación del proceso, sea posible visualizar en los ordenadores personales el contenido de un sitio alojado de un servidor remoto.
Cada recurso en la web tiene un URL distinto el cual se usa para hallarlo, por ejemplo,http://google.com.co es diferente de http://yahoo.com ya que los dos tienen recursos diferentes por ser de empresas diferentes, dentro de una misma página web pueden existir diferentes URLs
Las URLs se pueden dividir en tres partes:
* La primera parte es el http, que es el URL scheme, que nos describe cómo acceder a un recurso en particular situado en la web, en este caso llamará al navegador que utilizará el protocolo de transferencia de hipertexto, luego de hacer esta llamada el navegador tendrá un protocolo diferente que será el de HTTPS que es un protocolo de seguridad de HTTP.
* La segunda parte es el host, lo cual es un nombre para denominar al ordenador que funciona como el punto de inicio y final de las transferencias de datos. Los computadores utilizan el Domain Name System (DNS) para trasladar el host a una dirección de red y ellos sabrán exactamente a dónde mandar la petición del recurso. También se puede especificar usando la dirección IP.
* La tercera parte es la URL path, que se encarga de reconocer la ruta que se está pidiendo y responder de manera adecuada con el recurso que se aloja en esta URL.
Muchas URLs apuntan a lugares distintos tales como el host o la unidad del disco duro, en el equipo que lo tiene. Por otro lado los recursos también pueden ser dinámicos. El http//:news.google.com.co URL, probablemente, no se refiere a un archivo real en el servidor google.com.co. En lugar de ello, algún tipo de aplicación se está ejecutando en el host google.com.co que se llevará a esa petición y construir un recurso mediante el contenido de una base de datos. La aplicación puede ser construida con ASP.NET, PHP, Perl, Ruby on Rails, o alguna otra tecnología web que sabe cómo responder a las peticiones de entrada mediante la creación de un navegador HTML para mostrar.
Lo que hacen muchos sitios web hoy en día en es evitar siempre que los nombres verdaderos de los archivos aparezcan en la URL. Algunos recursos también llevarán al navegador a descargar recursos adicionales.

## Puertos, consultas y fragmentos

Un número de puerto es la representación del número de puerto del host el cual se utiliza para escuchar las llamadas de las solicitud HTTP. El número de puerto predeterminado para HTTP es el número de puerto 80. Este número generalmente se excluye de las URL. Sólo se tendrá que especificar un puerto en entornos de prueba, depuración o de desarrollo.
* Veamos esta URL:
    http://www.bing.com/search?q=broccoli
Todo lo que va después del ‘?’ (signo de interrogación) es una consulta. Las cadenas de consultas contiene información para el sitio web de destino para utilizar o interpretar. Hace referencia a una interacción con una base de datos. La mayoría de veces vamos a ver que pasan los pares de nombre y valor en forma nombre1 = valor1 y nombre2 = valor2.
Un ejemplo de una página web con una cadena de consulta sería:
    http://foo.com?first=Scott&last=Allen
En este ejemplo hay dos pares de nombre y valor. El primer par tiene el nombre de "primera" y el valor de "Scott". El segundo par tiene el nombre de "última" con el valor "Allen". En nuestra URL anterior (http://www.bing.com/search?q=broccoli), el motor de búsqueda Bing verá el nombre de "q" asociado con el valor "brócoli".
* Observemos esta otra URL:
    http://server.com?recipe=broccoli#ingredients
La parte después de el "#" se conoce como fragmento. El fragmento no se procesa por el servidor. El fragmento se utiliza por el navegador e identifica una sección particular del recurso, un fragmento de HTML especificado en un atributo ID igual al fragmento.
El navegador mostrará como contenido primero el fragmento HTML con ese ID, realizando el scroll automáticamente si es necesario.
En el ejemplo anterior:
    <Div id = "post"> ... </div> <div id = "retroalimentación"> ... </div>.
* Si juntamos todo lo que hemos aprendido hasta ahora, sabemos que una URL se divide en las siguientes piezas:
* <Scheme>: // <host>:? <Puerto> / <ruta> <consulta> # <fragmento>.