Qué es HTTP, estructura de la solicitud y respuesta en HTTP

Qué es HTTP, estructura de la solicitud y respuesta en HTTP

Si usted es un usuario o un propietario de un sitio web, una palabra que siempre encontrara al navegar es HTTP. Es importante conocer los conceptos básicos de HTTP para comprender cómo funciona Internet y los detalles que son enviados y recibidos entre su navegador y el servidor web.

Aquí hay una guía para principiantes sobre HTTP que intenta explicar los conceptos básicos.

1. ¿Qué es HTTP

HTTP significa Hyper Text TRANSFERENCIA PROTOCOLO. Esta es una base para la comunicación de datos en Internet. La comunicación de datos comienza con una solicitud enviada por un cliente y finaliza con la respuesta recibida de un servidor web.

  • La URL de un sitio web que comienza con “http: //” se ingresa en un navegador web desde una computadora (cliente). El navegador puede ser Chrome, Firefox, Edge, Safari, Opera o cualquier otra cosa.
  • El navegador envía una solicitud enviada al servidor web que  aloja el sitio web.
  • El servidor web luego devuelve una respuesta como una página HTML o cualquier otro formato de documento al navegador.
  • El navegador muestra la respuesta del servidor al usuario.

La representación simbólica de un proceso de comunicación HTTP se muestra en la imagen siguiente:

El navegador web se llama como un agente de usuario y otro ejemplo de un agente de usuario es los rastreadores de motores de búsqueda como Googlebot.

 

2. Estructura de solicitud HTTP del cliente

Un mensaje de solicitud simple desde una computadora cliente consta de los siguientes componentes:

  • Una línea de solicitud para obtener un recurso requerido, por ejemplo, una solicitud GET /content/page1.html está solicitando un recurso llamado /content/page1.html del servidor.
  • Encabezados (Ejemplo – Aceptar Idioma: ES).
  • Una línea vacía
  • Un cuerpo de mensaje que es opcional.

Todas las líneas deben finalizar con un retorno de carro y avance de línea. La línea vacía solo debe contener retorno de carro y avance de línea sin espacios.

3. Estructura de respuesta HTTP desde el servidor web

Una respuesta simple del servidor contiene los siguientes componentes:

  • Código de estado HTTP (por ejemplo, HTTP / 1.1 301 movido permanentemente, significa que el recurso solicitado se movió permanentemente y redirigiendo a algún otro recurso).
  • Encabezados (Ejemplo – Content-Type: html)
  • Una línea vacía
  • Un cuerpo de mensaje que es opcional.

Todas las líneas en la respuesta del servidor deben finalizar con un retorno de carro y avance de línea. Similar a la solicitud, la línea vacía en una respuesta también solo debe tener retorno de carro y avance de línea sin espacios.

4. Ejemplo de sesión HTTP

Tomemos un ejemplo de que desea abrir una página “home.html” desde el sitio “yoursite.com”. A continuación se muestra cómo debería ser la solicitud del navegador del cliente para obtener una página “home.html” de “tusitio.com”.

La respuesta del servidor web debería verse a continuación:

HTTP/1.1 200 OK

Date: Sun, 28 Jul 2013 15:37:37 GMT

Server: Apache

Last-Modified: Sun, 07 Jul 2013 06:13:43 GMT

Transfer-Encoding: chunked

Connection: Keep-Alive

Content-Type: text/html; charset=UTF-8

Webpage Content

La codificación de transferencia fragmentada es un método en el que el servidor responde con datos en fragmentos y esto se utiliza en lugar del encabezado Content-Length. La comunicación se detiene cuando se recibe una longitud cero de fragmento y este método se utiliza en HTTP Versión 1.1.

5. ¿Qué es ese HTTPS?

Ahora que entiendes HTTP, ¿qué es ese HTTPS? HTTPS es el protocolo HTTP seguro requerido para enviar y recibir información de forma segura a través de Internet. Hoy en día es obligatorio que todos los sitios web tengan protocolo HTTPS para tener Internet segura. Los navegadores como Google Chrome mostrarán una alerta con el mensaje “No seguro” en la barra de direcciones si el sitio no se sirve a través de HTTPS.

Además de la seguridad y el cifrado, la estructura de comunicación del protocolo HTTPS permanece igual que el protocolo HTTP como se explicó anteriormente.

[box type=”warning” align=”” class=”” width=””]Se recomienda encarecidamente no utilizar información confidencial, como detalles de tarjetas de crédito en sitios HTTP. Asegúrese de que las transacciones financieras se realicen a través del protocolo HTTPS.[/box]

6. ¿Cómo verificar la solicitud y respuesta HTTP en Chrome?

Bueno, es hora de lo práctico. Permítanos tomar Google Chrome el navegador popular, pero el proceso sigue siendo el mismo en todos los demás navegadores para ver los detalles.

  • Abra una página web en Google Chrome y vaya al menú “Ver> Desarrollador> Herramientas del desarrollador”.
  • También puede abrir la consola de desarrollador haciendo clic derecho en la página y seleccionando la opción “Inspeccionar”.
  • Vaya a la pestaña “Red” y luego vuelva a cargar la página. Ahora verá el tiempo de carga para cada componente en la página.
  • Haga clic en el ícono “Mostrar información general” para eliminar la línea de tiempo para que pueda ver otros detalles con claridad.
  • Haga clic en la URL de la página en la barra izquierda y vaya a la pestaña “Respuesta”. (También puede ver los mismos detalles en la pestaña “Vista previa”).

ver cabeceras http en google chrome

Ver solicitud y respuesta HTTP en Google Chrome

Puede ver los detalles de la solicitud y las respuestas exactamente como hemos explicado en las secciones anteriores. La pestaña “Encabezados” le mostrará los detalles de la información del encabezado HTTP para la solicitud y respuesta para el elemento seleccionado.

7. Herramienta de comprobación de encabezado HTTP

Al igual que Chrome, también hay muchas otras herramientas gratuitas disponibles para verificar el código de respuesta recibido en los encabezados HTTP. Por ejemplo, vaya a esta herramienta de comprobación de encabezado HTTP , ingrese cualquiera de la URL que desea verificar y haga clic en el botón Enviar.

Verá los detalles completos del encabezado como a continuación:

8. Solución de problemas con códigos de estado HTTP

Hay muchas razones, una solicitud del navegador no obtendrá la respuesta requerida del servidor web. En tales casos de falla, la información de respuesta del servidor web es importante para la resolución de problemas.

Los códigos de estado devueltos por el servidor se pueden ver claramente en la sección Herramientas de desarrollo de Chrome.

En la captura de pantalla anterior, la línea 4 – HTTP / 1.1 200 OK indica que el servidor ha devuelto correctamente el recurso solicitado sin ningún problema. Puede obtener estos detalles utilizando la herramienta de verificación de encabezado HTTP como se explicó anteriormente.

El código de tres dígitos devuelto por el servidor se llama código de estado HTTP, aunque algunas personas lo refieren como código de error, aunque no es un error. Es simplemente una respuesta de estado y le ayuda a encontrar el motivo de la falla de comunicación. Recuerde que la falla de comunicación también puede ocurrir debido a problemas del navegador y la computadora, como problemas de red local. En estos casos, los navegadores modernos como Chrome mostrarán errores del navegador como ” err_network_changed “, ” err_internet_disconnected “, etc.

9. Detalles de los códigos de estado HTTP

Los códigos de estado HTTP se desarrollan según los estándares de Internet definidos por Internet Engineering Task Force (IETF). Se clasifican en cinco categorías diferentes de la siguiente manera:

  • Serie 1xx – mensaje informativo
  • 2xx – Mensaje de éxito
  • 3xx – Mensaje de redirección
  • 4xx – Mensajes de error relacionados con el cliente
  • 5xx – Mensajes de error relacionados con el servidor
  Como convertir fotos en dibujos o caricaturas con un iPhone o iPad

9.1. Serie Informativa – 1xx

Estos son los códigos de información enviados por el servidor que indican que la solicitud se recibió del cliente con éxito y la misma está en proceso en el extremo del servidor. Esta es una respuesta provisional del servidor que normalmente solo contiene la línea de estado y los encabezados opcionales y finaliza con una línea vacía. Obtenga más información sobre cada código de estado 1xx en detalle.

9.2. Success Series – 2xx

Estos son los códigos de éxito enviados por el servidor que indican que la solicitud se recibió y procesó correctamente. Obtenga más información sobre cada código de estado 2xx en detalle.

9.3. Redirección – 3xx

Estos son los códigos de estado para la redirección. Cuando un agente de usuario (un navegador web o un rastreador) que solicita URL1 se redirige a otro recurso URL2, a continuación, se devuelven los códigos 2xx como respuesta. Estos códigos no se ven en la ventana del navegador ya que los navegadores se redirigen automáticamente a otra URL. Obtenga más información sobre cada código de estado 3xx en detalle.

9.4. Errores del cliente – 4xx

Estos son los errores del lado del cliente que el servidor no pudo resolver. Un ejemplo simple y bien conocido es un error ” 404 – Página no encontrada ” que se muestra en la ventana del navegador cuando el navegador solicita una URL no disponible. Obtenga más información sobre cada código de estado 4xx en detalle.

9.5. Serie de errores del servidor – 5xx

Cuando un servidor web no puede cumplir una solicitud válida de un cliente, envía un código de error 5xx en la respuesta. Un ejemplo es el error ” 504 – Tiempo de espera de puerta de enlace “, donde el servidor web1 actúa como un proxy para obtener una respuesta de otro servidor web2 pero no recibió una respuesta oportuna. Obtenga más información sobre cada código de estado 5xx en detalle.

10. Descargar la guía de códigos de estado HTTP

Puede descargar la guía completa de códigos de estado HTTP  para obtener referencias sin conexión y obtener más información sobre cada código en detalle.

Nota:

Recomendamos a todos los usuarios de Internet y propietarios de sitios web que aprendan los conceptos básicos de HTTP. Esto realmente ayudará a solucionar los problemas relacionados con el fallo de conexión. recomiendo leer sobre los DNS también.