UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD CIENCIAS HUMANAS Y DE LA EDUCACIÓN CARRERA DE DOCENCIA EN INFORMÁTICA NOMBRE: GUSTAVO MASAQUIZA
MODELOS POR CAPAS El modelo de interconexión de sistemas abiertos (OSI) tiene siete capas. Este artículo las describe y explica sus funciones, empezando por la más baja en la jerarquía (la física) y siguiendo hacia la más alta (la aplicación). Las capas se apilan de esta forma:
Aplicación Presentación Sesión Transporte Red Vínculo de datos Física
CAPA FÍSICA La capa física, la más baja del modelo OSI, se encarga de la transmisión y recepción de una secuencia no estructurada de bits sin procesar a través de un medio físico. Describe las interfaces eléctrica/óptica, mecánica y funcional al medio físico, y lleva las señales hacia el resto de capas superiores. Proporciona:
Codificación de datos: modifica el modelo de señal digital sencillo (1 y 0) que utiliza el equipo para acomodar mejor las características del medio físico y para ayudar a la sincronización entre bits y trama. Determina: Qué estado de la señal representa un binario 1 Como sabe la estación receptora cuándo empieza un "momento bit" o Cómo delimita la estación receptora una trama Anexo al medio físico, con capacidad para varias posibilidades en el medio: o o
¿Se utilizará un transceptor externo (MAU) para conectar con el medio? o ¿Cuántas patillas tienen los conectores y para qué se utiliza cada una de ellas? Técnica de la transmisión: determina si se van a transmitir los bits codificados por señalización de banda base (digital) o de banda ancha (analógica). Transmisión de medio físico: transmite bits como señales eléctricas u ópticas adecuadas para el medio físico y determina: o
o o
Qué opciones de medios físicos pueden utilizarse Cuántos voltios/db se deben utilizar para representar un estado de señal en particular mediante un medio físico determinado
CAPA DE VÍNCULO DE DATOS La capa de vínculo de datos ofrece una transferencia sin errores de tramas de datos desde un nodo a otro a través de la capa física, permitiendo a las capas por encima asumir virtualmente la transmisión sin errores a través del vínculo. Para ello, la capa de vínculo de datos proporciona:
Establecimiento y finalización de vínculos: establece y finaliza el vínculo lógico entre dos nodos. Control del tráfico de tramas: indica al nodo de transmisión que "dé marcha atrás" cuando no haya ningún búfer de trama disponible. Secuenciación de tramas: transmite y recibe tramas secuencialmente. Confirmación de trama: proporciona/espera confirmaciones de trama. Detecta errores y se recupera de ellos cuando se producen en la capa física mediante la retransmisión de tramas no confirmadas y el control de la recepción de tramas duplicadas. Delimitación de trama: crea y reconoce los límites de la trama. Comprobación de errores de trama: comprueba la integridad de las tramas recibidas. Administración de acceso al medio: determina si el nodo "tiene derecho" a utilizar el medio físico.
CAPA DE RED La capa de red controla el funcionamiento de la subred, decidiendo qué ruta de acceso física deberían tomar los datos en función de las condiciones de la red, la prioridad de servicio y otros factores. Proporciona:
Enrutamiento: enruta tramas entre redes. Control de tráfico de subred: los enrutadores (sistemas intermedios de capa de red) pueden indicar a una estación emisora que "reduzca" su transmisión de tramas cuando el búfer del enrutador se llene. Fragmentación de trama: si determina que el tamaño de la unidad de transmisión máxima (MTU) que sigue en el enrutador es inferior al tamaño de la trama, un enrutador puede fragmentar una trama para la transmisión y volver a ensamblarla en la estación de destino. Asignación de direcciones lógico-físicas: traduce direcciones lógicas, o nombres, en direcciones físicas. Cuentas de uso de subred: dispone de funciones de contabilidad para realizar un seguimiento de las tramas reenviadas por sistemas intermedios de subred con el fin de producir información de facturación.
Subred de comunicaciones
El software de capa de red debe generar encabezados para que el software de capa de red que reside en los sistemas intermedios de subred pueda reconocerlos y utilizarlos para enrutar datos a la dirección de destino. Esta capa libera a las capas superiores de la necesidad de tener conocimientos sobre la transmisión de datos y las tecnologías de conmutación intermedias que se utilizan para conectar los sistemas de conmutación. Establece, mantiene y finaliza las conexiones entre las instalaciones de comunicación que intervienen (uno o varios sistemas intermedios en la subred de comunicación). En la capa de red y las capas inferiores, existen protocolos entre pares entre un nodo y su vecino inmediato, pero es posible que el vecino sea un nodo a través del cual se enrutan datos, no la estación de destino. Las estaciones de origen y de destino pueden estar separadas por muchos sistemas intermedios. CAPA DE TRANSPORTE La capa de transporte garantiza que los mensajes se entregan sin errores, en secuencia y sin pérdidas o duplicaciones. Libera a los protocolos de capas superiores de cualquier cuestión relacionada con la transferencia de datos entre ellos y sus pares. El tamaño y la complejidad de un protocolo de transporte depende del tipo de servicio que pueda obtener de la capa de transporte. Para tener una capa de transporte confiable con una capacidad de circuito virtual, se requiere una mínima capa de transporte. Si la capa de red no es confiable o solo admite datagramas, el protocolo de transporte debería incluir detección y recuperación de errores extensivos. La capa de transporte proporciona:
Segmentación de mensajes: acepta un mensaje de la capa (de sesión) que tiene por encima, lo divide en unidades más pequeñas (si no es aún lo suficientemente pequeño) y transmite las unidades más pequeñas a la capa de red. La capa de transporte en la estación de destino vuelve a ensamblar el mensaje. Confirmación de mensaje: proporciona una entrega de mensajes confiable de extremo a extremo con confirmaciones. Control del tráfico de mensajes: indica a la estación de transmisión que "dé marcha atrás" cuando no haya ningún búfer de mensaje disponible. Multiplexación de sesión: multiplexa varias secuencias de mensajes, o sesiones, en un vínculo lógico y realiza un seguimiento de qué mensajes pertenecen a qué sesiones (consulte la capa de sesiones).
Normalmente, la capa de transporte puede aceptar mensajes relativamente grandes, pero existen estrictas limitaciones de tamaño para los mensajes impuestas por la capa de red (o inferior). Como consecuencia, la capa de transporte debe dividir los mensajes en unidades más pequeñas, o tramas, anteponiendo un encabezado a cada una de ellas.
Así pues, la información del encabezado de la capa de transporte debe incluir información de control, como marcadores de inicio y fin de mensajes, para permitir a la capa de transporte del otro extremo reconocer los límites del mensaje. Además, si las capas inferiores no mantienen la secuencia, el encabezado de transporte debe contener información de secuencias para permitir a la capa de transporte en el extremo receptor recolocar las piezas en el orden correcto antes de enviar el mensaje recibido a la capa superior. Capas de un extremo a otro A diferencia de las capas inferiores de "subred" cuyo protocolo se encuentra entre nodos inmediatamente adyacentes, la capa de transporte y las capas superiores son verdaderas capas de "origen a destino" o de un extremo a otro, y no les atañen los detalles de la instalación de comunicaciones subyacente. El software de capa de transporte (y el software superior) en la estación de origen lleva una conversación con software similar en la estación de destino utilizando encabezados de mensajes y mensajes de control. CAPA DE SESIÓN La capa de sesión permite el establecimiento de sesiones entre procesos que se ejecutan en diferentes estaciones. Proporciona:
Establecimiento, mantenimiento y finalización de sesiones: permite que dos procesos de aplicación en diferentes equipos establezcan, utilicen y finalicen una conexión, que se denomina sesión. Soporte de sesión: realiza las funciones que permiten a estos procesos comunicarse a través de una red, ejecutando la seguridad, el reconocimiento de nombres, el registro, etc.
CAPA DE PRESENTACIÓN La capa de presentación da formato a los datos que deberán presentarse en la capa de aplicación. Se puede decir que es el traductor de la red. Esta capa puede traducir datos de un formato utilizado por la capa de la aplicación a un formato común en la estación emisora y, a continuación, traducir el formato común a un formato conocido por la capa de la aplicación en la estación receptora. La capa de presentación proporciona:
Conversión de código de caracteres: por ejemplo, de ASCII a EBCDIC. Conversión de datos: orden de bits, CR-CR/LF, punto flotante entre enteros, etc. Compresión de datos: reduce el número de bits que es necesario transmitir en la red. Cifrado de datos: cifra los datos por motivos de seguridad. Por ejemplo, cifrado de contraseñas.
CAPA DE APLICACIÓN
El nivel de aplicación actúa como ventana para los usuarios y los procesos de aplicaciones para tener acceso a servicios de red. Esta capa contiene varias funciones que se utilizan con frecuencia:
Uso compartido de recursos y redirección de dispositivos Acceso a archivos remotos Acceso a la impresora remota Comunicación entre procesos Administración de la red Servicios de directorio Mensajería electrónica (como correo) Terminales virtuales de red
CARACTERÍSTICAS La capa del modelo es referencia TCP/IP. Esta capa suministra servicios a los procesos de aplicación que están fuera del modelo OSI. La capa de aplicación identifica y establece la disponibilidad de los socios de comunicaciones deseados (y los recursos que se requieren para conectarse con ellos), sincroniza las aplicaciones cooperantes y establece acuerdos con respecto a los procedimientos para la recuperación de errores y el control de la integridad de los datos. TIPOS DE SISTEMAS
NOCIONES CLIENTE SERVIDOR Clasificaciones Según las dimensiones (o ámbito):
Redes de área local. LAN (Local Area Network). Redes de área amplia. WAN (Wide Area Network).
Según relación entre equipos:
Redes igualitarias. Permite que todos los equipos de la red puedan compartir recursos sin que ninguno de ellos tenga control de la red. En este tipo de red, cada ordenador puede hacer de cliente y de servidor indistintamente, es decir, puede compartir sus recursos y también puede acceder a los que comparte otro equipo. A la hora de configurar los equipos se establece lo que se llama Grupos de trabajo, que nos ayuda a identificarlos y a localizar los recursos. Redes con servidor. Existe en la red un ordenador especializado, denominado servidor, que se encarga del control de la red, de los recursos, usuarios y privilegios; el resto de equipos son los clientes. Dominio es el conjunto de equipos que confían en un servidor, denominado servidor de domino. A un dominio se le asigna un nombre en el servidor, y los clientes se unen al dominio mediante dicho nombre. Los servidores funcionan con un Sistema Operativo especial para servidores. Ej.: Windows 2003 Server.
Según medio de conexión:
De cable. De pares trenzados (8 hilos), o de fibra óptica. Inalámbricas. Por Wi-Fi, o por Bluetooth.
Según tipologías, o forma de con
En bus y en anillo. Usan cable coaxial con conectores BNC en T. Están en desuso por ser muy lentas. El cable conecta los equipos directamente sin otros dispositivos. En estrella, o árbol. Es la más utilizada en la actualidad, usa cable estructurado UTP Cat-5, de 8 hilos formando pares trenzados y conectores RJ45. Los equipos se conectan a un concentrador (o hub), o su evolución, un conmutador (o swicht), que controlan el tránsito de la información. Estos dispositivos pueden interconectarse en cascada para extender la red.
TIPOS DE PAGINAS WEB Página Web Estática: Es aquella que está compuesta de una serie de archivos que contienen el código HTML que constituye la página en sí y que permiten mostrar los textos, imágenes, videos, etc que conforman el contenido de la página. Estos archivos se almacenan en el servidor de Hosting en formato HTML junto con los archivos de imágenes (comunmente en formato jpg, gif o png) y los videos y demás contenido del site. Para modificar este tipo de página los archivos deben ser descargados del servidor con algún software para este fin (como los clientes FTP), editado usando un programa de edición de páginas web como el Dreamweaver, grabados y subidos nuevamente al servidor. Este proceso de edición requiere manejar una serie de programas que se deben tener instalados en la PC y requieren de una serie de conocimientos y habilidades para el uso correcto de estos programas. Por lo general la edición de este tipo de páginas la realizan los diseñadores y desarrolladores web dedicados a estas labores. Este tipo de página es difíciles de manejar por el propio cliente debido a los conocimientos y programas que se requieren. La mayoría de personas que contrata este tipo de páginas para su negocio o empresa suele modificar el contenido muy esporádicamente debido a que cada modificación requerirá de los servicios de la persona que desarrollo la web o alguna otra que se dedique a dar estos servicios, lo que implica un costo por cada modificación. Página Web Dinámica: El término dinámico no se refiere a movimiento como muchos pueden pensar. El término dinámico hace referencia a que la página web se construye al momento en que la página es visitada por el usuario. Es decir que el contenido de la página web no es fijo sino que se construye de acuerdo a la interacción que el usuario hace con la página. La información de este tipo de página suele estar almacenada en Bases de Datos de las cuales se extrae una parte según las selecciones o acciones llevada a cabo por la persona que visita la página web. Para realizar este tipo de página se necesita tener conocimientos de programación y manejo de bases de datos o usar software que haga uso de estas tecnologías. Las páginas web dinámicas tienen además las siguientes características:
Gran número de posibilidades en su diseño y desarrollo. El visitante puede alterar el diseño, contenidos o presentación de la página a su gusto. En su realización se utilizan diversos lenguajes y técnicas de programación. El proceso de actualización es sumamente sencillo, sin necesidad de entrar en el servidor.
Permite un gran número de funcionalidades tales como bases de datos, foros, contenido dinámico, etc. Pueden realizarse íntegramente con software de libre distribución. Existe una amplia comunidad de programadores que brinda apoyo desinteresado. Cuenta con un gran número de soluciones prediseñadas de libre disposición.
HTML y DHTML
HTML Dinámico y diferencia entre DHTML del lado del cliente y del servidor. A medida que vamos avanzando en la programación de páginas web nos vamos fijando nuevos objetivos para crear cada día webs más excitantes. Siguiendo este camino, llega un momento que el lenguaje HTML se nos queda corto y tenemos que servirnos de alguna tecnología superior, que nos permita realizar esos desarrollos más complejos y dinámicos. Imaginaros por un momento que tuvieseis entre manos un gran proyecto, un proyecto que supusiese la creación masiva de páginas, como puede ser un periódico, donde cada día hay que cambiar los contenidos por completo, o una enciclopedia online, con miles de páginas y referencias, por poner dos ejemplos. Si utilizásemos únicamente HTML necesitaríamos un regimiento de maquetadores web para poder llevar a cabo el trabajo de crear tantas y tantas páginas y su actualización.
Así mismo, si quisiésemos desarrollar una aplicación en la web donde el usuario tuviese que interaccionar con la página, o una aplicación que ofreciese algún servicio, como un buscador o un gestor de correo a través de la web, también nos veríamos muy limitados con el HTML. Además, también estamos muy limitados con el HTML a la hora de crear efectos en las páginas, animaciones que llamen un poco la atención del usuario y que permitan hacer que las páginas web sean más divertidas. DHTML es lo que hace posible crear unas páginas web que salven todas las limitaciones del HTML como las comentadas con anterioridad. Como vemos, el DHTML es muy amplio y engloba muchas técnicas que se pueden realizas con multitud de lenguajes de programación y programas distintos. Vamos a hacer una clasificación de DHTML para acotar un poco sus radios de acción y para que el concepto se acote en áreas de la programación web que podemos ya conocer. DHTML de cliente Por un lado tenemos el DHTML que se desarrolla en el ámbito de una página web, cuando la página se está viendo en la pantalla de los usuarios, es decir, en los navegadores. En estos casos, para realizar cualquier tipo de efecto o interactividad en la página tenemos como recurso al navegador, por eso se llama de cliente. La programación en el cliente sirve para muchas cosas, ejemplos de ello son efectos diversos en las páginas, sonidos, videos, menús interactivos, control y respuesta a las acciones de un usuario en la página, control sobre los formularios, etc. Para hacer muchas de estas cosas podemos utilizar diversos lenguajes de programación como Javascript y VBScript, o incluso podemos meter aquí programas como Flash. No obstante está más cercana a la idea del DHTML el programar scripts dentro de la página con los lenguajes del lado del cliente. Javascript para todos los navegadores y VBScript para Internet Explorer. Estos lenguajes trabajan, como se ha dicho, integrados con el navegador y dependen del modelo y de la versión de éste. Estos lenguajes no permiten el desarrollo de cualquier proyecto en Internet, ya que al ser ejecutados en el navegador del cliente, no tienen acceso a todos los recursos del sistema del usuario, para evitar agujeros de seguridad, ni a los recursos del servidor donde están alojadas las páginas. Esta limitación, añadida a la ya comentada de su dependencia del navegador, los hace insuficientes para desarrollos avanzados, siendo más bien un complemento de programación que el núcleo de verdaderas aplicaciones en el web. DHTML de servidor Por otro lado, existen una serie de lenguajes que se basan en el servidor para ejecutar sus scripts, al igual que la programación del cliente se basa en el navegador. Cuando una
página es solicitada por parte de un cliente, el servidor ejecuta los scripts y genera una página resultado, que envía al cliente. La página resultado contiene únicamente código HTML, por lo que puede ser interpretada por cualquier navegador sin lugar a errores, independientemente de su versión. Esta independencia del navegador ya es una ventaja significativa con respecto a la programación en el cliente, pero lo es a un más que contamos con todos los recursos del servidor donde están alojadas las páginas. Estos recursos, como podrían ser gestores de bases de datos, servidores de correo o el propio sistema de archivos del servidor, son los que nos van a permitir construir todo tipo de aplicaciones. Como ventajas adicionales se puede destacar que el código de las páginas con los scripts nunca llega al cliente, recordamos que al navegador sólo le llega HTML, y esto implica que nuestros visitantes nunca van a poder acceder al corazón de las aplicaciones que hayamos desarrollado, es decir, a los scripts del lado del servidor. Lenguajes del lado del servidor son ASP, desarrollado por Microsoft, PHP de código libre, JSP para programar en Java, o alguna otra interfaz como CGI, que se desarrolla en lenguajes como C o Perl.
Esquema del funcionamiento de las páginas con scripts del servidor
APLICACIONES SERVIDOR En informática, se denomina servidor de aplicaciones a un servidor en una red de computadores que ejecuta ciertas aplicaciones.
Usualmente se trata de un dispositivo de software que proporciona servicios de aplicación a las computadoras cliente. Un servidor de aplicaciones generalmente gestiona la mayor parte (o la totalidad) de las funciones de lógica de negocio y de acceso a los datos de la aplicación. Los principales beneficios de la aplicación de la tecnología de servidores de aplicación son la centralización y la disminución de la complejidad en el desarrollo de aplicaciones. Servidores de aplicación Java EE Como consecuencia del éxito del lenguaje de programación Java, el término servidor de aplicaciones usualmente hace referencia a un servidor de aplicaciones Java EE. Entre los servidores de aplicación Java EE privativos más conocidos se encuentran WebLogic de Oracle (antes BEA Systems) y WebSphere de IBM. EAServer de Sybase Inc. es también conocido por ofrecer soporte a otros lenguajes diferentes a Java, como PowerBuilder. Entre los servidores de aplicaciones libres se encuentran JOnAS del consorcio ObjectWeb, JBoss AS de JBoss (división de Red Hat), Geronimo de Apache, TomEE de Apache, Resin Java Application Server de Caucho Technology, Blazix de Desiderata Software, Enhydra Server de Enhydra.org y GlassFish de Oracle. Mucha gente confunde Tomcat como un servidor de aplicaciones; sin embargo, es solamente un contenedor de servlets [1]. Java EE provee estándares que permiten a un servidor de aplicaciones servir como "contenedor" de los componentes que conforman dichas aplicaciones. Estos componentes, escritos en lenguaje Java, usualmente se conocen como Servlets, Java Server Pages (JSPs) y Enterprise JavaBeans (EJBs) y permiten implementar diferentes capas de la aplicación, como la interfaz de usuario, la lógica de negocio, la gestión de sesiones de usuario o el acceso a bases de datos remotas. La portabilidad de Java también ha permitido que los servidores de aplicación Java EE se encuentren disponibles sobre una gran variedad de plataformas, como Unix, Microsoft Windows y GNU/Linux.
SCRIPT DE CLIENTE
.NET Framework 4 ASP.NET proporciona dos enfoques para incluir capacidades de cliente. El primer enfoque consiste en utilizar las características Ajax de ASP.NET. Microsoft Ajax incluye archivos de script de biblioteca que contienen funciones de script de cliente que incorporan muchas de las ventajas de programación orientada a objetos y del modelo
de ASP.NET para scripting de cliente. Microsoft Ajax también proporciona compatibilidad basada en servidor que incluye controles de servidor web que pueden representar automáticamente el script de cliente necesario para la funcionalidad Microsoft Ajax.
El segundo enfoque es crear el script de cliente e integrarlo usted mismo en las páginas web ASP.NET. Este enfoque solo resulta útil si tiene pequeños fragmentos de script de cliente o si desea integrar el script de cliente existente en la aplicación. Muchos controles de servidor web de ASP.NET (por ejemplo, los controles de validación de ASP.NET) utilizan este enfoque para agregar la funcionalidad de cliente.
TECNOLOGÍAS MODERNAS AJAX JAX, Ajax (Asynchronous JavaScript And XML) es una técnica para cargar datos o fragmentos de HTML sin refrescar la ventana del navegador. Fue diseñado a finales de los 90 por Microsoft como una API que daba soporte a su servicio de Outlook Web Access (Outlook a través de navegador). Esencialmente ésta tecnología permite que el cliente javascript se comunique con el servidor utilizando el objeto XMLHttpRequest, presente en la mayoría de los navegadores modernos. Para crear un objeto XMLHttpRequest, en cualquier navegador es: var requester = new XMLHttpRequest(); Excepto en Internet Explorer, el cual lo implementa como un objeto ActiveX, por lo cual es: var requester = new ActiveXObject("Microsoft.XMLHTTP"); Las diferencias terminan ahí, las siguientes llamadas al objeto XMLHttpRequest son independientes del navegador utilizado. Para transportar datos en un objeto XMLHttpRequest, primero debe crearse una conexión, y luego enviar para obtener los datos desde el servidor. Lo primero que se debe hacer es establecer una conexión con el servidor, para ello se utiliza el método open(), éste método toma 2 argumentos, el primero es el tipo de petición que deseamos enviar y el segundo indica la localización del recurso al cual se desea acceder, dicha localización puede ser absoluta o relativa. requester.open("GET", "/feed.xml"); En el ejemplo, se ve que se desea acceder al documento feed.xml utilizando GET.
Éste método también recibe un tercer argumento, el cual es booleano, que especifica si la petición va a ser sincrónica (false) o asincrónica (true, ésta es la opción por defecto), una petición sincrónica obliga al navegador a esperar a que llegue la respuesta
rechazando cualquier interacción que realice el usuario, por otro lado, una operación asincrónica ocurre de fondo, permitiendo que se ejecuten otros scripts y que el usuario tenga acceso a su navegador. Es recomendable usar peticiones asincrónicas. Open(), también puede recibir 2 argumentos mas, los cuales son nombre de usuario y contraseña, los cuales se usan para acceder a URLs que están protegidas por contraseña. Luego que se inició la conexión, el método send() activará la conexión y hará la petición. Send() tomará un argumento permitiendo que se envíen datos extra, como variables CGI. requester.send(); Debido a que Internet Explorer los trata como opcional a los parámetros, pero firefox (por ejemplo) no, si no se le pasa ningún parámetro lanzará un error, es conveniente hacer requester.send(null); Por ejemplo, si queremos enviar variables por el método GET, se puede usar: requester.open("GET", "/query.cgi?name=Bob&email=bob@example.com"); requester.send(null); En cambio, si se quiere hacer por POST, se puede usar: requester.open("POST", "/query.cgi"); requester.send(name=Bob&email=bob@example.com); Luego de la llamada a send(), el XMLHttpRequest contactará al servidor y traerá los datos de vuelta, como éste proceso puede tomar un tiempo indefinido, debemos usar un método listener. En caso de XMLHttpRequest necesitamos escuchar los cambios de las variables readyState. Ésta variable especifica el estado de la conexión y puede tomar cualquiera de éstos valores:
0. 1. 2. 3. 4.
Sin iniciar Cargando Cargado Interactivo Terminado
Los cambios en la variable readyState, pueden ser monitorizados mediante un listener especial onreadystatechange, por lo que necesitamos una función que maneje cuando readyState cambie: requester.onreadystatechange = stateHandler; Una vez que la petición es respondida con éxito, 2 características del objeto XMLHttpRequest pueden tener datos:
p responseXML: almacena un objeto DOM-estructurado de cualquier dato XML que fuera recuperado por el objeto. Este objeto es navegable usando el estándar JavaScript DOM para acceder a los atributos y métodos, por ejemplo getElementsByTagName(), childNodes[ ] y parentNode. p responseText: almacena los datos como un string completo. Si el tipo contenido de los datos provistos por el servidor son texto plano o texto html, entonces ésta es la única propiedad que contendrá datos. Una copia de cualquier dato de text/xml será aplanada y puesta aquí como alternativa a responseXML.
LINKOGRAFÍA:
http://www.desarrolloweb.com/articulos/391.php http://support.microsoft.com/kb/103884/es http://docs.oracle.com/cd/E24842_01/html/820-2981/ipov-6.html http://platea.pntic.mec.es/vgonzale/pc_10/archivos/_124/Tema_2.2.htm http://www.ajaxperu.com/paginas-web/tipos-paginas