El Modelo de Objetos del Documento (DOM) es una interfaz de programación de aplicaciones (API) para documentos validos HTML y bien construidos XML. Define la estructura lógica de los documentos y el modo en que se accede y manipula. En la especificación DOM, el término "documento" es utilizado en un sentido amplio - the term "document" is used in the broad sense - cada vez más XML es utilizado como un medio de representar muchas clases diferentes de información que puede ser almacenada en sistemas diversos, y mucha de esta información se vería, en términos tradicionales, más como datos que como documentos. Sin embargo, XML presenta estos datos como documentos, y se puede utilizar DOM para manejar estos datos. Con el Modelo de Objetos del Documento, los programadores pueden construir documentos, navegar por su estructura, y añadir, modificar, o eliminiar elementos y contenido. Se puede acceder a cualquier cosa que se encuentre en un documento HTML o XML, modificando, borrando o añadiendo utilizando el Modelo de Objetos del Documento, con algunas excepciones - en particular, aún no se han especificado aplicaciones DOM para los subconjuntos interneto y externos de XML.
El DOM se originón como una especificación para permitir que los scrips de JavaScript y los programas Java fueran portables entre los navegadores Web. El "HTML Dinámico" fue el antesesor inmediato del Modelo de Objetos del Documento, y originalmente se pensaba en él principalmente en términos de navegadores. Sin embargo, cuando se formó el Grupo de Trabajo DOM en W3C, también se unieron a él compañías de otros ámbitos, incluyendo redactores y depositos de documentos HTML o XML. Varios de estos redactores han trabajdo con SGML antes de ser desarrollado XML; como resultado de ello, DOM ha recibido influencias de los "Bosques" y del estándar HyTime. Algunas de estas compañias también habían desarrollado sus propios modelos de objetos para documentos a fin de proporcionar un API para los editores o los archivos de documentos SGML/XML, y estos modelos de objetos también han influido en el DOM.
DOM especifica aplicaciones que pueden utilizarse para manipular documento XML o HTML. Es importante darse cuenta de que estas aplicaciones son una abstracción - comparables a las "clases de base abstractas" en C++, constituyen un medio para especificar una forma de acceder y manipular la representación interna que una aplicación hace de un documento. Las aplicaciones no implican una implementación particular concreta. Cada aplicación DOM es libre de mantener los documentos según una repsresentación cualquiera, siempre y cuando soporte las aplicaciones mostradas en esta especificación. Algunas implementaciones del DOM serán programas existentes que usen las interfaces del DOM para acceder a programas escritos mucho antes de que existiera la especificación DOM. Por tanto, DOM se ha diseñado para evitar dependencias de implementación; en particular,
DNS se corresponde con las siglas de Domain Name System (que se traduce por Sistema de Nombres de Demonio) y es el sistema que hace posible que podamos navegar por Internet, puesto que apunta los dominios al servidor correspondiente y, además, sirve de intérprete entre nosotros y la máquina al traducir la dirección IP (un secuencia numérica) a un nombre de demonio (el nombre de una web). DNS es una base de datos distribuida cuya función es traducir los nombres de dominio en las redes. Es decir, que se encargan de traducir la solicitud de un nombre, www.tuejemplo.com, en número de IP específicos, 207.142.131.234.
Primero debemos entender que todo equipo conectado a la Red y toda página o sitio web tienen asignados una dirección IP (es secuencia numérica que ya hemos mencionado más arriba). Puesto que existen millones de direcciones IP, nos resultaría imposible conocerlas todas, además, nos apañamos mejor para memorizar nombres, por ello existen los dominios y los DNS para traducir esas direcciones IP a un texto. Así, el DNS sirve para traducir los nombres en direcciones IP y viceversa, haciendo posible que podamos navegar por Internet con facilidad, solo teniendo que introducir el nombre de una página o sitio web para acceder a él. El DNS se compone de tres partes con funciones diferentes:
Sin ponernos muy técnicos, el DNS funciona recorriendo esa estructura de árbol haciendo consultas de DNS, es decir, solicitando información, e irá subiendo por los diferentes niveles del árbol hasta resolver el nombre, es decir, encontrar la información que buscaba, y devolverla. Así, cuando introducimos el nombre de una web en el navegador, el DNS traducirá esta a una dirección IP y la buscará primero en la memoria caché del pequeño servidor DNS de nuestro equipo o de navegador (las direcciones que visitemos habitualmente estarán guardadas aquí para ahorrar tiempo y recuros). Si no encuentra el dominio ahí, realizará la consulta al servidor DNS de nuestro router (lo suministra nuestro proveedor de Internet) y si sigue sin encontrar el dominio, seguirá realizando una búsqueda recursiva hasta encontrarlo. Básicamente, para entender qué realiza el DNS, podemos pensar en él como el encargado de buscar en la base de datos la dirección o dominio al que queremos acceder y que va realizando consultas en cada nivel, hasta encontrar la información que buscaba, es decir, dar con la dar con la dirección IP y permitirnos el acceso a ella.