Que es un dominio?
Un dominio o nombre de dominio es el nombre que identifica un sitio web. Cada dominio tiene que ser único en Internet. Por ejemplo, "www.masadelante.com" es el nombre de dominio de la página web de Masadelante.
Protocolos de comunicacion de dominio
Direccionamiento IP y enrutamiento
Quizás los aspectos más complejos de IP son el direccionamiento y el enrutamiento. El direccionamiento se refiere a la forma como se asigna una dirección IP y cómo se dividen y se agrupan subredes de equipos.
El enrutamiento consiste en encontrar un camino que conecte una red con otra y, aunque es llevado a cabo por todos los equipos, es realizado principalmente por routers, que no son más que computadoras especializadas en recibir y enviar paquetes por diferentes interfaces de red, así como proporcionar opciones de seguridad, redundancia de caminos y eficiencia en la utilización de los recursos.
Dirección IP
Una dirección IP es un número que identifica de manera lógica y jerárquicamente a una interfaz de un dispositivo (habitualmente una computadora) dentro de una red que utilice el protocolo de Internet (Internet Protocol), que corresponde al nivel de red o nivel 3 del modelo de referenciaOSI. Dicho número no se ha de confundir con la dirección MAC que es un número físico que es asignado a la tarjeta o dispositivo de red (viene impuesta por el fabricante), mientras que la dirección IP se puede cambiar.
El usuario al conectarse desde su hogar a Internet utiliza una dirección IP. Esta dirección puede cambiar al reconectar. A la posibilidad de cambio de dirección de la IP se denomina dirección IP dinámica.
Los sitios de Internet que por su naturaleza necesitan estar permanentemente conectados, generalmente tienen una dirección IP fija (IP fija o IP estática); es decir, no cambia con el tiempo. Los servidores de correo, dns, ftp públicos, servidores web, conviene que tengan una dirección IP fija o estática, ya que de esta forma se facilita su ubicación.
Las máquinas manipulan y jerarquizan la información de forma numérica, y son altamente eficientes para hacerlo y ubicar direcciones IP. Sin embargo, los seres humanos debemos utilizar otra notación más fácil de recordar y utilizar, por ello las direcciones IP pueden utilizar un sinónimo, llamado nombre de dominio (Domain Name), para convertir los nombres de dominio en direcciones IP, se utiliza la resolución de nombres de dominio DNS.
Existe un protocolo para asignar direcciones IP dinámicas llamado DHCP (Dynamic Host Configuration Protocol).
Enrutamiento
En comunicaciones, el encaminamiento (a veces conocido por el anglicismo ruteo o enrutamiento) es el mecanismo por el que en una red los paquetes de información se hacen llegar desde su origen a su destino final, siguiendo un camino o ruta a través de la red. En una red grande o en un conjunto de redes interconectadas el camino a seguir hasta llegar al destino final puede suponer transitar por muchos nodos intermedios.
Asociado al encaminamiento existe el concepto de métrica, que es una medida de lo "bueno" que es usar un camino determinado. La métrica puede estar asociada a distintas magnitudes: distancia, coste, retardo de transmisión, número de saltos, etc., o incluso a una combinación de varias magnitudes. Si la métrica es el retardo, es mejor un camino cuyo retardo total sea menor que el de otro. Lo ideal en una red es conseguir el encaminamiento óptimo: tener caminos de distancia (o coste, o retardo, o la magnitud que sea, según la métrica) mínimos. Típicamente el encaminamiento es una función implantada en la capa 3 (capa de red) del modelo de referencia OSI.
Nombres de dominio
4. Nombres de dominio
Generalmente nosotros no trabajamos con direcciones IP sino con nombres de dominio del estilo de www.saulo.net o msnews.microsoft.com. Para que esto pueda ser posible es necesario un proceso previo de conversión de nombres de dominio a direcciones IP, ya que el protocolo IP requiere direcciones IP al enviar sus datagramas. Este proceso se conoce como resolución de nombres.
4.1 Métodos estándar de resolución de nombres
A continuación se comentan brevemente los distintos métodos de resolución de nombres que utiliza Microsoft Windows para traducir un nombre de dominio a dirección IP. Estos métodos son aplicables a las utilidades TCP/IP que proporciona Windows (Ping, Tracert...) y son distintos a los utilizados desdeEntorno de Red.
Método de resolución | Descripción |
1. Local host name | Nombre de host configurado para la máquina (Entorno de Red, TCP/IP, configuración DNS) |
2. Fichero HOSTS | Fichero de texto situado en el directorio de Windows que contiene una traducción de nombres de dominio en direcciones IP. |
3. Servidor DNS | Servidor que mantiene una base de datos de direcciones IP y nombres de dominio |
4. Servidor de nombres NetBIOS | Servidor que mantiene una base de datos de direcciones IP y nombres NetBIOS. Los nombres NetBIOS son los que vemos desde Entorno de Red y no tienen porqué coincidir con los nombres de dominio |
5. Local Broadcast | Broadcasting a la subred local para la resolución del nombre NetBIOS |
6. Fichero LMHOSTS | Fichero de texto situado en el directorio de Windows que contiene una traducción de nombres NetBIOS en direcciones IP |
Cada vez que escribimos un nombre de dominio en una utilidad TCP/IP, por ejemplo:
C:\>ping www.ibm.com
se van utilizando cada uno de los métodos descritos desde el primero al último hasta que se consiga resolver el nombre. Si después de los 6 métodos no se ha encontrado ninguna coincidencia, se producirá un error.
El fichero HOSTS proporciona un ejemplo muy sencillo de resolución de nombres:
127.0.0.1 localhost
192.168.0.69 servidor
129.168.0.1 router
4.2 Resolución de nombres de dominio
La resolución de un nombre de dominio es la traducción del nombre a su correspondiente dirección IP. Para este proceso de traducción los resolvers pueden formular dos tipos de preguntas (recursivas e iterativas).
Preguntas recursivas. Si un cliente formula una pregunta recursiva a un servidor DNS, éste debe intentar por todos los medios resolverla aunque para ello tenga que preguntar a otros servidores.
Preguntas iterativas. Si, en cambio, el cliente formula una pregunta iterativa a un servidor DNS, este servidor devolverá o bien la dirección IP si la conoce o si no, la dirección de otro servidor que sea capaz de resolver el nombre.
Veamos un ejemplo: Estamos trabajando con Internet Explorer y escribimos en la barra de dirección: www.ibm.com. En primer lugar, el navegador tiene que resolver el nombre de dominio a una dirección IP. Después podrá comunicarse con la correspondiente dirección IP, abrir una conexión TCP con el servidor y mostrar en pantalla la página principal de IBM. La siguiente gráfica muestra el esquema de resolución:

Nuestro ordenador (cliente DNS) formula una pregunta recursiva a nuestro servidor DNS local (generalmente el proveedor de Internet).
El servidor local es el responsable de resolver la pregunta, aunque para ello tenga que reenviar la pregunta a otros servidores. Suponemos que no conoce la dirección IP asociada a www.ibm.com; entonces formulará una pregunta iterativa al servidor del dominio raíz.
El servidor del dominio raíz no conoce la dirección IP solicitada, pero devuelve la dirección del servidor del dominio com.
El servidor local reenvía la pregunta iterativa al servidor del dominio com.
El servidor del dominio com tampoco conoce la dirección IP preguntada, aunque sí conoce la dirección del servidor del dominio ibm.com, por lo que devuelve esta dirección.
El servidor local vuelve a reenvíar la pregunta iterativa al servidor del dominio ibm.com.
El servidor del dominio ibm.com conoce la dirección IP de www.ibm.com y devuelve esta dirección al servidor local.
El servidor local por fin ha encontrado la respuesta y se la reenvía a nuestro ordenador.
Extensiones de dominio
Dominios de primer nivel
Los gTLD son dominios genericos y que no se ajustan al ámbito de un país en particular. Es el caso de los más conocidos .com, .net, .org, .edu, .info, .biz..
.COM: Se suele utilizar por Empresas y Organizaciones Comerciales de todo el mundo.
.ORG: Lo deberían de utilizar sólo por instituciones sin ánimo de lucro y ONG.
.NET: Este dominio está reservado para empresas e instituciones relacionadas con servicios de internet.
Dominios de segundo nivel
Es el caso de los ccTLD son dominios que están asociados a un país determinado, como el .es en Esapaña, o el .fr en Francia, .it Italia, .de Alemania, .ec Ecuador.
.ES: Si su área de actuación está limitada a España, o quiere identificarse cláramente con una página española.
Dominios de tercer nivel
Son los dominios del tipo .com.es, .nom.es, .org.es
Tienen la misma finalidad que los dominios de primer nivel pero con la territorialidad española.
Dominios .gob.es, edu.es
Organismos Públicos y Entidades e Instituciones relacionadas con la enseñanaza o investigación en España.
Otros tipo de extensiones de dominios:
Estos dominios pueden ser registrados por todo tipo de personas físicas y jurídicas de cualquier parte del mundo sin requerimientos especiales
Dominios genéricos Multilingües: Son dominios .com, .org y .net que llevan eñes, acentos, u otros caracteres especiales.
Dominios .tv: Los usan principalmente empresas de video, cine y televisión.
Dominios .info: Destinados principalmente para la difusión de información general o puntual.
Dominios .biz: Se suelen emplear en actividades comerciales y de negocios.
Dominios .cc: Esta extensión puede ser interesante para aquellos que pretenden conseguir un dominio global y no tienen posibilidad de conseguir un .com.
Dominios .ws: Son la siglas .ws se identifican con Web Site, por lo que se trata de una opción para cualquier tipo de web.
Dominios .name: Destinado al registro de nombres propios, apodos, etc.
Dominios .pro: Para uso especifico reservado a profesionales de determinadas categorías, agrupados en subdominios. Ejemplo: .med.pro (médicos).
Dominios .coop: Este dominio esta reservado a las cooperativas y para registrarlo hace falta demostrar la existencia de la cooperativa a través del organismo local correspondiente.
Dominios .museum: El uso de este dominio está restringido solo para los museos.
Que es un DNS?
El sistema de nombres de dominio, más comúnmente conocido por sus siglas en inglés como Domain Name System o DNS, es básicamente es el encargado de traducir las complicadas series de números que conforman una dirección IP en palabras que el usuario pueda recordar fácilmente.
Cada página web es accedida mediante una dirección IP. El problema es que hay tanta cantidad que es prácticamente imposible recordar el IP de cada una. Imagine que en vez de introducir www.informatica-hoy.com.artendrías que introducir en el navegador la dirección 200.178.123.25. Seria una tarea muy compleja ingresar por el IP de cada una de las paginas,además de una tarea prácticamente imposible.
Comandos que permitan conocer la direccion fisica de las paginas web
Para que el usuario pueda conocer información sobre los adaptadores de red del equipo, todos los sistemas Windows incluyen una aplicación llamada ipconfig.exe.
Funciona solo invocándola desde la línea de comandos usando: IPCONFIG.
IPCONFIG muestra información y todos los datos de la configuración del equipo para el protocolo TCP/IP. Adicionalmente permite liberar y renovar la dirección IP de un adaptador de red y mostrar el contenido de la caché de resolución DNS, así como vaciarla, actualizar y volver a registrar los nombres.
¿Como iniciar la herramienta IPCONFIG?
La herramienta IPCONFIG es bastante sencilla de iniciar y utilizar, puedes usar cualquiera de las siguientes opciones para ejecutarla:
1- Inicia la consola de CMD, para eso escribe en el cuadro de Inicio o Ejecutar CMD, oprime la tecla Enter, escribe o inserta en la consola IPCONFIG y oprime la tecla Enter.
2- Escribe o pega directamente en el cuadro de Inicio o en Ejecutar: cmd /k IPCONFIG y oprime la tecla Enter.
3- Crea un acceso directo, para eso da un clic derecho del ratón en el escritorio u otro directorio y escoge Nuevo Acceso directo, en la ventana que aparece Escriba la ubicación del elemento escribe o pega lo siguiente: "C:\Windows\System32\cmd.exe /k ipconfig".
Sigue los pasos del asistente y renombra el acceso directo creado a: ipconfig.
Información que proporciona IPCONFIG
Al usar IPCONFIG sin ningún modificador, muestra solo los datos esenciales como la Dirección IP, la Máscara de red y la Puerta de enlace, para cada adaptador encontrado.
Usándolo con el modificador /ALL, es decir: IPCONFIG /ALL muestra toda la información disponible.
Ejemplos de la información que es mostrada al usar el comando ipconfig /all, la primera imagen es de un equipo conectado a internet a través de una red local.
En este caso, entre otros datos se mostrará:
Descripción: Nombre del adaptador o tarjeta de red utilizado en la conexión.
Dirección IPV4: Es la dirección IP asignada al equipo en la red local.
Puerta de enlace predeterminada: Es la dirección IP del equipo que funciona como servidor o proxy y que tiene acceso a internet.
Servidores DNS: Son los servidores con los cuales el equipo anterior gestiona en la red la relación nombre de dominio/Dirección IP de las paginas solicitadas. Generalmente son dos, el principal y el secundario.
Estado de DHCP: Configuración dinámica de host, en el caso del equipo mostrado no se encuentra habilitada, eso significa que siempre se utilizará una dirección IP estática o fija entre el equipo y el host.
Al estar habilitada DHCP, cada vez que se inicie una conexión se usará una dirección IP diferente.
Modificadores y opciones que se pueden emplear con IPCONFIG
Comando | Uso |
IPCONFIG /all | Muestra toda la información disponible en el adaptador o tarjeta de red empleado |
IPCONFIG /release | Libera la dirección IP del adaptador especificado |
IPCONFIG /renew | Renueva la dirección IP del adaptador especificado |
IPCONFIG /displaydns | Muestra el contenido de la caché de resolución DNS |
IPCONFIG /flushdns | Vacía la memoria caché de resolución DNS |
IPCONFIG /registerdns | Actualiza todas las concesiones DHCP y vuelve a registrar los nombres DNS |
IPCONFIG /showclassid | Muestra todas las identidades (ID) permitidos para este adaptador |
IPCONFIG /setclassid | Modifica el identificador de clase |
IPCONFIG /allcompartments /all | Muestra información detallada sobre todos los compartimientos |
El programa Apache
Apache es un
servidor web HTTP de
código abierto, para plataformas
Unix (
BSD,
GNU/Linux, etc.),
Microsoft Windows,
Macintosh y otras, que implementa el protocolo HTTP/1.1
2 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular
NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. En inglés,
a patchy server (un servidor "parcheado") suena igual que
Apache Server.
Apache presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.
Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. Alcanzó su máxima cuota de mercado en
2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario proporcionadas por Netcraft
3 ).
La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache.
Ventajas
- Modular
- Código abierto
- Multi-plataforma
- Extensible
- Popular (fácil conseguir ayuda/soporte)
Uso
Apache es usado principalmente para enviar páginas web estáticas y dinámicas en la World Wide Web. Muchas aplicaciones web están diseñadas asumiendo como ambiente de implantación a Apache, o que utilizarán características propias de este servidor web.
Apache es el componente de servidor web en la popular plataforma de aplicaciones LAMP, junto a MySQL y los lenguajes de programación PHP/Perl/Python (y ahora también Ruby).
Este servidor web es redistribuido como parte de varios paquetes propietarios de software, incluyendo la base de datos Oracle y el IBM WebSphere application server. Mac OS X integra apache como parte de su propio servidor web y como soporte de su servidor de aplicacionesWebObjects. Es soportado de alguna manera por Borland en las herramientas de desarrollo Kylix y Delphi. Apache es incluido con Novell NetWare 6.5, donde es el servidor web por defecto, y en muchas distribuciones Linux.
Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a disposición en una forma segura y confiable. Un ejemplo es al momento de compartir archivos desde una computadora personal hacia Internet. Un usuario que tiene Apache instalado en su escritorio puede colocar arbitrariamente archivos en la raíz de documentos de Apache, desde donde pueden ser compartidos.
Los programadores de aplicaciones web a veces utilizan una versión local de Apache con el fin de previsualizar y probar código mientras éste es desarrollado.
Microsoft Internet Information Services (IIS) es el principal competidor de Apache, así como Sun Java System Web Server de Sun Microsystems y un anfitrión de otras aplicaciones como Zeus Web Server. Algunos de los más grandes sitios web del mundo están ejecutándose sobre Apache. La capa frontal (front end) del motor de búsqueda Google está basado en una versión modificada de Apache, denominada Google Web Server (GWS). Muchos proyectos de Wikimedia también se ejecutan sobre servidores web Apache.
El programa PHP
PHP es un lenguaje de programación de uso general de código del lado
del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de
programación del lado del servidor que se podían incorporar directamente en el
documento HTML en lugar de llamar a un archivo externo que procese los datos. El
código es interpretado por un servidor web con un módulo de procesador de PHP
que genera la página Web resultante. PHP ha evolucionado por lo que ahora
incluye también una interfaz de línea de comandos que puede ser usada en aplicaciones
gráficas independientes. PHP puede ser usado en la mayoría de los servidores
web al igual que en casi todos los sistemas operativos y plataformas sin ningún
costo.
PHP fue creado originalmente por Rasmus Lerdorf en 1995. Actualmente el lenguaje
sigue siendo desarrollado con nuevas funciones por el grupo PHP.
·
Es considerado un lenguaje fácil de aprender, ya que en
su desarrollo se simplificaron distintas especificaciones, como es el caso de
la definición de las variables primitivas, ejemplo que se hace evidente en el
uso de php arrays.
·
El código fuente escrito en PHP es invisible al navegador web y al cliente, ya que es el
servidor el que se encarga de ejecutar el código y enviar su resultado HTML al
navegador. Esto hace que la programación en PHP sea segura y confiable.
·
Capacidad de conexión con la mayoría de los motores de
base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL.
·
Capacidad de expandir su potencial utilizando módulos
(llamados ext's o
extensiones).
·
Posee una amplia documentación en su sitio web oficial,
entre la cual se destaca que todas las funciones del sistema están explicadas y
ejemplificadas en un único archivo de ayuda.
·
Es libre, por lo que se presenta como una alternativa de fácil
acceso para todos.
·
Permite aplicar técnicas de programación
orientada a objetos. Incluso aplicaciones como Zend framework, empresa que
desarrolla PHP, están totalmente desarrolladas mediante esta metodología.
·
No requiere definición de tipos de variables aunque sus
variables se pueden evaluar también por el tipo que estén manejando en tiempo
de ejecución.
·
Tiene manejo de excepciones (desde PHP5).
·
Si bien PHP no obliga a quien lo usa a seguir una
determinada metodología a la hora de programar, aún haciéndolo, el programador
puede aplicar en su trabajo cualquier técnica de programación o de desarrollo
que le permita escribir código ordenado, estructurado y manejable. Un ejemplo
de esto son los desarrollos que en PHP se han hecho del patrón de diseño Modelo Vista
Controlador (MVC), que permiten separar el tratamiento y acceso a los datos, la lógica de control y la interfaz de usuario en tres componentes
independientes.
·
Debido a su flexibilidad ha tenido una gran acogida como
lenguaje base para las aplicaciones WEB de manejo de contenido, y es su uso
principal.
Inconvenientes
Como es un
lenguaje que se interpreta en ejecución, para ciertos usos puede resultar un
inconveniente que el código fuente no pueda ser ocultado. La ofuscación es una técnica que puede
dificultar la lectura del código pero no necesariamente impide que el código
sea examinado.
·
Debido a que es un lenguaje interpretado, un script en
PHP suele funcionar considerablemente más lento que su equivalente en un
lenguaje de bajo nivel, sin embargo este inconveniente se puede minimizar con
técnicas de cache tanto en archivos como en memoria.
·
Las variables al no ser tipificadas dificulta a los
diferentes IDEs para ofrecer asistencias para el tipificado del código, aunque
esto no es realmente un inconveniente del lenguaje en sí. Esto es solventado
por Zend Studio añadiendo un comentario con el tipo a la declaración de la
variable.
El programa MySQL
Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta
licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una
licencia específica que les permita este uso. Está desarrollado en su mayor parte
en ANSI
C.
Versiones: 
Características
·
Usa GNU Automake, Autoconf, y Libtool para
portabilidad
·
Uso de multihilos mediante hilos del kernel.
·
Usa tablas en disco b-tree para búsquedas
rápidas con compresión de índice
·
Tablas hash en memoria
temporales
·
El código MySQL se prueba con Purify (un
detector de memoria perdida comercial) así como con Valgrind, una herramienta
GPL.
·
Completo soporte para operadores y funciones
en cláusulas select y where.
·
Completo soporte para cláusulas group by y
order by, soporte de funciones de agrupación
·
Seguridad: ofrece un sistema de contraseñas y
privilegios seguro mediante verificación basada en el host y el tráfico de
contraseñas está cifrado al conectarse a un servidor.
·
Soporta gran cantidad de datos. MySQL Server
tiene bases de datos de hasta 50 millones de registros.
·
Se permiten hasta 64 índices por tabla (32
antes de MySQL 4.1.2). Cada índice puede consistir desde 1 hasta 16 columnas o
partes de columnas. El máximo ancho de límite son 1000 bytes (500 antes de
MySQL 4.1.2).
·
Los clientes se conectan al servidor MySQL
usando sockets TCP/IP en cualquier plataforma. En sistemas Windows se pueden
conectar usando named pipes y en sistemas Unix usando ficheros socket Unix.
·
En MySQL 5.0, los clientes y servidores
Windows se pueden conectar usando memoria compartida.
·
MySQL contiene su propio paquete de pruebas
de rendimiento proporcionado con el código fuente de la distribución de MySQL.
Especificaciones del código fuente
MySQL
está escrito en una mezcla de C y C++.
La direccion fisica del localhost
Usos prácticos
La dirección de loopback se puede usar para probar el funcionamiento de TCP/IP haciendo ping a 127.0.0.1, al recibir una respuesta se puede asumir que el software asociado al protocolo está bien (el estado del hardware, como la tarjeta de red, no lo conocemos con esta prueba, ya que no llega a salir del propio equipo).
Con fines educativos se suelen instalar servidores locales http como XAMPP, LAMP o WAMP a los cuales se tendrá acceso con localhost o 127.0.0.1 desde el navegador.
Con fines de restricción de direcciones web, se modifica la correspondencia de dominios y direcciones IP en el archivo "hosts" del sistema operativo, haciendo que cuando entres a una dirección Web en específico, esta te redirija a 127.0.0.1.