URL o URI

Es el acrónimo de Uniform Resource Locator (Localizador de Recursos Uniforme), es un tipo de Identificador de Recursos Uniforme (URI), es una secuencia de caracteres que utilizan los navegadores web, clientes de email y otro tipo de software para identificar un recurso de red dentro de Internet. Estos recursos pueden ser páginas Web, u otros documentos, gráficos, programas.

Existe una diferencia entre uno y otro [1]:

Roger Pate
Este es un nombre, que es un identificador. Es como un URI, pero no puede ser una URL, ya que no dice nada sobre la ubicación o cómo ponerse en contacto. Con ese nombre se puede identificar a no menos 5 personas en Estados Unidos.

4914 West Bay Street, Nassau, Bahamas.
Este es un localizador, que es un identificador para esa ubicación física. Es como una URL y URI (ya que todas las URL son URIs), y también identifica indirectamente como «residente de …». En este caso se identifica exclusivamente.

Ejemplos de URL

mailto:someone@example.com
http://www.damnhandy.com/
https://github.com/afs/TDB-BDB.git
file:///home/someuser/somefile.txt

Partes

Se puede dividir en las siguientes partes:

Estos elementos se pueden ver utilizando el siguiente formato:

url
Partes de una URL

URI como identificador opaco

Observe el siguiente ejemplo:

URI http://sitioweb.com/blog
URL http://sitioweb.com/blog.html

La primera no puede indicar una localización de un recurso. Incluso es posible que no exista ningún recurso, sino que sea generado de forma dinámica.

Lo único para lo cual puede servir un identificador es para refererirse a un objeto. Cuando se está referenciando no debe verse el contenido de la URI para obtener otra información (Berners-Lee, 1996)

Manipulación

Parseo

Utilizando el método parse_url() se pueden obtener las partes que componen una dirección URL.

https://gist.github.com/jeavila/9067a2c1c1afb9eb101230a44144fecb

Construcción de query string

Es posible que se necesiten construir query string para proporcionar elementos adicionales a una URL, en este caso se puede hacer uso de la función http_build_querypara construirlos.

https://gist.github.com/jeavila/21fcd07a64df8a2e6c70dda0891d022e

Localización de elementos a través de un link

Al utilizar un link se puede establecer una URL absoluta, es decir que se establezca exactamente la localización de un recurso. Esto es útil para localizar elementos que están fuera de nuestro servidor.

<a href="http://www.google.com">Google</a>

Sin embargo, para recursos internos del servidor es posible utilizar links relativos los cuales dependen de dónde se encuentra el recurso. Esto es útil, debido a que es posible que pueda cambiarse la localizción de los recursos.

<a href="./blog">Blog</a>

Las nomenclaturas funcionan de la siguiente manera: Para representar la carpeta actual de un recurso se denota: ./, mientras que para mostrar la carpeta padre del directorio del recurso: ../. Estos elementos se pueden entremezclar.

Referencia

[1] http://stackoverflow.com/a/1984225

Bibliografía

http://php.net/manual/es/ref.url.php
http://php.net/manual/es/function.parse-url.php
https://kb.iu.edu/d/abwp
http://php.net/manual/en/function.dirname.php