Espacios en blanco en peticiones http

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 11,93 KB

UT5.HTTP:


HTTP es un protocolo de la capa de aplicación que facilita a los usuarios, de una forma sencilla e intuitiva el acceso a la información hipermedia remota de sistemas conectados a una red.

WWW:

Es un servicio de distribución de información que permite acceder a millones de recursos electrónicos y aplicaciones distribuidos en servidores por todo Internet que están identificados y localizados por direcciones.

Componentes y funcionamiento

Recursos


Documentos, imágenes, videos, etc. Que están conectados por hiperenlaces y son accesibles mediante servidores web.

Nombres y direcciones

Sistema de nombres basado en cadenas de caracteres que identifican y localizan inequívocamente a los recursos en la web.

Clientes web

Son aplicaciones a nivel de cliente que conectan con los servidores e interpretan la información para mostrársela a los usuarios.

Servidores web

Atienden las peticiones de los clientes y les envían los recursos solicitados.

Proxies web

Programas intermediarios entre clientes y servidores, que pueden actuar como cortafuegos y almacenar datos para un mejor rendimiento.

Protocolo HTTP

Conjunto de normas y reglas realizadas para dialogar entre cliente, servidor y proxies, utilizan el puerto TCP como protocolo de transporte.

Tecnologías web

Utilizadas para desarrollar aplicaciones basadas en la web.

Nombres y direcciones

La web es un conjunto de recursos distribuidos y conectados entre sí. Para poder localizar esos recursos se acceden a ellos mediante cadenas de caracteres que los identifican. Estas cadenas se denominan identificadores uniformes de recursos (URI). Los localizadores universales de recursos (URL) son tipos de URIs.

Páginas web, sitios web y aplicaciones web

Un página web es un documento hipermedia que normalmente contiene hiperenlaces a otras páginas web o recursos. Las páginas web están escritas en lenguajes que son interpretados por los navegadores. Su contenido puede ser estático o dinámico.Un sitio web es un conjunto de páginas web relacionadas y accesibles a partir de un mismo nombre de dominio DNS. El conjunto de sitios web de Internet constituyen la WWW. Los sitios web se clasifican según los criterios, uno de ellos es por su contenido.Una aplicación web es aquella donde el usuario interactúa con un navegador que accede a los servicios y recursos que ofrece un servidor web.

Servidores web

Son programas que atienden peticiones HTTP, procesan e interpretan código escrito en diferentes lenguajes. Los recursos pueden estar localizados en el mismo equipo donde se ejecuta el servidor o en otros equipos de la red a los que el servidor puede acceder usando protocolos adicionales. El servidor puede enviar tanto contenido estático como dinámico.Por defecto escuchan peticiones HTTP en el puerto 80/TCP.

Clientes web (navegadores):

Los navegadores son programas con los que interactúa el usuario y que le permiten, entre otras funciones, introducir URIs para acceder a recursos disponibles en la red.Reciben recursos de los servidores web, los procesan y muestran los resultados al usuario, permitíéndole interactuar si es necesario. Mantienen una memoria cache en la que almacenan durante un tiempo las direcciones a las que han accedido, recursos procesados, contraseñas, etc.

Proxies web:


Proxy directo

Recibe la petición iniciada por un cliente y se traslada al servidor. La solicitud del cliente es hacia el servidor web no hacia el proxy, este solo hace de intermediario. Usados habitualmente para optimizar y controlar el acceso a redes externas.

Proxy inverso

Reciben la petición de un cliente y la reenvían a uno o varios servidores. En este caso, la solicitud del cliente es hacia el proxy. Usados habitualmente para ofrecer acceso a servidores web que están detrás de un cortafuegos y no son accesibles directamente.

Protocolo HTTP:

Define las reglas que utilizan los componentes de software para comunicarse. Es un protocolo que utiliza TCP como protocolo de transporte y determina los tipos de peticiones que los clientes pueden enviar, así como el formato y estructura de las respuestas.Define una estructura de metadatos, en forma de cabeceras que se envían tanto en las peticiones como en las respuestas.

Funcionamiento básico

El usuario introduce una URI en la barra de direcciones.  El navegador analiza la URL y establece una conexión TCP con el servidor web. Cuando se ha establecido la conexión TCP, el navegador envía un mensaje HTTP de petición que depende de la URI. El servidor envía un mensaje de respuesta que depende de la petición enviada y del estado del servidor. Se cierra la conexión TCP.

Mensajes HTTP

Se componen de líneas escritas en texto plano (ASCII) que contienen las órdenes y parámetros con la sintaxis definida en el protocolo. Pueden ser de petición o de respuesta.

Mensajes de petición

Línea inicial: Incluye el método utilizado, la parte relativa al servidor y la versión del protocolo. Línea/s de cabecera:
Conjunto de pares nombre/valor denominados cabeceras que determinan como será procesada la petición por parte del servidor.  Si no hay cabecera se envía un “0”. Cada cabecera se muestra en una línea. Detrás de la última cabecera se envía una línea en blanco.

Mensajes de respuesta

Línea inicial: Incluye la versión HTTP utilizada, el código de estado o error y texto explicativo del código de estado.Línea/s de cabecera: Conjunto de pares nombre/valor denominados cabeceras que determinan como será procesada la petición por parte del servidor.  Si no hay cabecera se envía un “0”. Cada cabecera se muestra en una línea. Detrás de la última cabecera se envía una línea en blanco. Cuerpo del mensaje (opcional): Queda determinado por el tipo de recursos solicitados.

HTTP: Métodos de petición


Especifican la operación que quiere realizar el cliente en el servidor. La versión HTTP 1.1 contempla siete métodos de petición.

Método GET:

 Es el método más utilizado y se emplea para obtener cualquier tipo de información del servidor. Se invoca cuando se introduce una URL en el navegador. Permite enviar parámetros al servidor en la URI. Para codificar los parámetros como parte de la URI se añaden a la URI detrás del nombre del recursos el carácter “?”, los diferentes parámetros se separan mediante “&” y los espacios se sustituyen por “+”. No envían cuerpo de mensaje. No se pueden utilizar para subir archivos o realizar otras operaciones que requieran enviar una gran cantidad de datos al servidor.

Método POST:

Se emplea para solicitar al servidor que acepte información que se envía adjunta en una petición. Envían cuerpo de mensaje y en él se incluyen los parámetros y los datos que se consideren, es decir, no son visibles en la URL. Se invoca normalmente como consecuencia de enviar formularios HTML POST. Se utilizan en operaciones que no deben de ser repetidas, al recargar la página, los navegadores lanzan una alerta. No tiene límite de cantidad de datos.No es recomendable cachear las respuestas obtenidas en una petición POST.

Método OPTIONS:

Para solicitar al servidor información sobre las opciones de comunicación disponibles de un recurso determinado.

Método HEAD:

Para recuperar las cabeceras de una página web. Similar a GET pero el servidor devuelve cabeceras. Usado para implementar caches de navegadores, informar al usuario del tamaño del recurso antes de internar recuperarlo, etc. Generalmente para servidores proxy.

Método PUT:

Para enviar recursos del servidor. Por seguridad no es habitual que los servidores web permitan subir recursos usando el método PUT.

Método DELETE:

Para eliminar recurso del servidor. Por seguridad no es habitual que los servidores web permitan eliminar los recursos usando el método DELETE.

Método TRACE:

Para trazar la ruta de una petición a través de proxies y cortafuegos. Usado para depurar errores en redes complejas.

Cabeceras

Son pares de nombre/valor que se pueden incluir en los mensajes de petición y respuestas HTTP. Definen información sobre los datos que se intercambian los clientes y servidores, sobre los propios clientes y servidores. Se pueden clasificar como indica a continuación:

Generales

Definen información que puede ser utilizada tanto por clientes como por servidores, ya que se aplican a una sesíón completa de comunicación. Proporcionan información sobre: Control de cache. Fechas. Codificación de la transferencia.

De petición:

Empleadas por los clientes para enviar información al servidor. Proporcionan información sobre: El propio navegador. Nombre y puerto del servidor al que se dirige la petición. Tipos MIME, comprensión, mapas de caracteres, idiomas que esta dispuesto a aceptar, etc. Cookies.

De respuesta:

Empleadas por el servidor para enviar información añadida al cliente. Proporcionan información sobre: La edad de la respuesta. Si un recurso no está disponible, fecha en la que se espera que esté disponible. El tipo servidor. Si servidor necesita autorización para acceder al recurso pedido.

De entidad:

Información relacionada directamente con el recurso que se le va a proporcionar al cliente. Proporcionan información sobre: Codificación Idioma Longitud Tipo MIME de los recursos.

Códigos de estado y error

Son enviados por los servidores en las respuestas HTTP y que informan al cliente de como ha sido procesada la petición. Se acompañan de un texto explicativo. 100 - 199 (Informativo).  Indican que el servidor ha recibido la petición pero no ha finalizado de procesarla. 200 - 299 (Éxito). Usados cuando la petición ha sido procesada satisfactoriamente. 200 = “OK”. 300 - 399 (Redirección). Indican que la petición ha sido procesada y redirigida a otra localización. 302 = “Found” 304 = “Not Modified” 400 - 499 (Errores del cliente) El servidor indica que hay un error en la petición del cliente o no se puede conceder. 400 = “Bad request” 401 = “Unauthorized” 403 = “Forbidden” 404 = “Not found” 500 - 599 (Errores del servidor). El servidor no puede atender una petición porque ha existido algún problema. 500 = “Internal Server Error” 503 = “Service Unavailable” Almacenamiento en cache

Los servidores contienen información que no cambia durante largos periodos de tiempo. HTTP soporta almacenamiento en cache para aumentar el rendimiento y evitar tráfico innecesario. Los navegadores y los proxies pueden almacenar localmente recursos durante un tiempo.Se definen cabeceras que permiten controlar que se almacena en cache, cuanto tiempo, que no se almacena, etc.

Redirecciones

HTTP permite a los servidores y a los proxies redirigir las peticiones a otras localizaciones.

Compresión

Es posible que los servidores compriman los recursos solicitados antes de enviárselos a los clientes para reducir el tráfico de red. Los clientes usan cabeceras en los mensajes de petición para indicar que soportan comprensión y los servicios para hacerle saber al cliente que envían datos comprimidos.

Entradas relacionadas: