0% encontró este documento útil (0 votos)
10 vistas5 páginas

Reporte HTTP

El documento detalla el uso del protocolo HTTP y pruebas con CURL, incluyendo la estructura de las solicitudes y respuestas HTTP, así como el análisis de códigos de estado. Se explican las diferencias en las respuestas del servidor basadas en el encabezado User-Agent y se describen secuencias de eventos al realizar conexiones FTP y HTTP. Además, se abordan las solicitudes POST y PUT, y el uso de CURL para HTTP/2 y HTTP/3.

Cargado por

Angel AR
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
10 vistas5 páginas

Reporte HTTP

El documento detalla el uso del protocolo HTTP y pruebas con CURL, incluyendo la estructura de las solicitudes y respuestas HTTP, así como el análisis de códigos de estado. Se explican las diferencias en las respuestas del servidor basadas en el encabezado User-Agent y se describen secuencias de eventos al realizar conexiones FTP y HTTP. Además, se abordan las solicitudes POST y PUT, y el uso de CURL para HTTP/2 y HTTP/3.

Cargado por

Angel AR
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

Sistemas distribuidos en Internet Tarea de http 26 de septiembre de 2024

Protocolo HTTP y pruebas con CURL

Arriaga Reyes Ángel


Maestría en ciencias de la computación, CICESE
[email protected]

ENCABEZADOS HTTP
I. Solicitar la página “http://www.cicese.mx”. Revise el mensaje de petición HTTP y ubique los
elementos de la request line, así como los campos opcionales que se enviaron.

Mensaje de petición HTTP


1. GET http://www.cicese.mx HTTP/1.1
2. Host: www.cicese.mx
3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0
4. Referer: https://www.rexswain.com/httpview.html
5. Connection: Close

Los elementos de la request line (línea 1) de esta solicitud están etiquetados por un color diferente.
El método HTTP utilizado es GET. Indica que el cliente (el navegador) está solicitando datos del
servidor. En específico, está pidiendo el contenido de la página web especificada en la URL
http://www.cicese.mx y es la dirección del recurso que se está solicitando. La parte final constituye
la versión del protocolo HTTP que se está utilizando para la solicitud. En este caso se usó HTTP/1.1,
que es una versión usada ampliamente ya que presenta varias mejoras respecto a HTTP/1.0. Por otra
parte, en el bloque de código de las líneas 2 a 5 se muestran los campos opcionales que se enviaron.
El encabezado Host especifica el nombre del servidor al que se está haciendo la solicitud. El
encabezado User-Agent identifica al programa que realiza la solicitud. Puede ser un navegador web,
un motor de búsqueda, una herramienta como curl, o un bot. Además, incluye detalles como el nombre
del software, su versión, y a veces información sobre el sistema operativo del cliente. El encabezado
Refer indica la URL de la página anterior desde la que se hizo la solicitud actual, es decir, le dice al
servidor desde qué página llegó el cliente. El encabezado Connection controla si la conexión TCP
entre el cliente y el servidor debe cerrarse después de que se complete la solicitud, o si debe
mantenerse abierta para futuras solicitudes.

II. Revise el mensaje de respuesta y ubique los elementos de status line, observando los códigos de
respuesta.

1
Sistemas distribuidos en Internet Tarea de http 26 de septiembre de 2024

La status line aparece al principio de la respuesta que un servidor envía a un cliente y contiene tres
elementos importantes que informan al cliente sobre el resultado del procesamiento de la solicitud,
los cuales son: versión del protocolo HTTP, código de estado (status code) y frase de motivo (reason
phrase). En este caso, se usó HTTP/1.1, el código de estado fue 302 y la frase fue Found,

• ¿Qué significan dichos códigos?

Respuesta: los códigos de estado son números de tres dígitos que indican el resultado de la solicitud
HTTP. Están organizados en cinco categorías basadas en el tipo de respuesta:

• 1xx (Informativo): La solicitud se ha recibido y se está procesando.


• 2xx (Éxito): La solicitud se ha procesado correctamente.
▪ Ejemplo: 200 OK (éxito general)
• 3xx (Redirección): Se necesita más acción para completar la solicitud (como una
redirección).
▪ Ejemplo: 301 Moved Permanently (redirección permanente)
• 4xx (Error del cliente): La solicitud no se pudo procesar debido a un error del cliente.
▪ Ejemplo: 404 Not Found (el recurso no se encuentra)
• 5xx (Error del servidor): El servidor falló al procesar la solicitud.
▪ Ejemplo: 500 Internal Server Error (error del servidor)

En este caso, se recibió el código 302, lo que significa que la página se ha movido temporalmente a
una nueva ubicación, por lo que el servidor devuelve un encabezado de ubicación (Location) con la
nueva URL.

• ¿Para qué sirve el campo Location que viene en el encabezado?

Respuesta: Para redirigir al navegador hacia otra URL que se incluya en la respuesta del servidor.

III. Observe el contenido de la segunda respuesta. ¿Habría alguna diferencia en la respuesta si usara
otro User-Agent?

Respuesta: Sí, ya que el servidor puede cambiar su respuesta dependiendo del cliente del que se trate,
lo cual se registra en el encabezado User-Agent. Por ejemplo, un servidor podría entregar una página
web con un diseño diferente si detecta que la solicitud viene de un navegador móvil, o podría bloquear
el acceso si se tratara de bots maliciosos.

PRUEBAS CON CURL


I. Conectarse al servidor FTP y analizar la secuencia de eventos
curl -v ftp://ftp.astrosen.unam.mx
Secuencia de eventos:
1. Resolución DNS y conexión TCP al servidor FTP en el puerto 21.
2. Mensaje de bienvenida del servidor (220).
3. Envío del comando USER para iniciar sesión como usuario anónimo.

2
Sistemas distribuidos en Internet Tarea de http 26 de septiembre de 2024

4. Envío de la contraseña genérica con el comando PASS.


5. El servidor confirma el inicio de sesión exitoso (230).
6. Se consulta el directorio actual con el comando PWD.
7. Se establece una conexión de datos en modo pasivo con EPSV.
8. El tipo de transferencia se cambia a ASCII con TYPE A.
9. Se solicita un listado de archivos con LIST y el servidor envía la lista.
10. El servidor confirma la transferencia exitosa (226), y curl mantiene la conexión
controladora intacta.

II. Solicitud GET


curl –v https://www.cicese.mx
Secuencia de eventos:
1. Resolución DNS para obtener la dirección IP del servidor.
2. Establecimiento de la conexión TCP/HTTPS en el puerto 443.
3. Negociación del protocolo HTTP/1.1 mediante ALPN (el servidor no soporta
ALPN).
4. Envío de la solicitud GET al recurso / en el servidor.
5. Respuesta del servidor con un código de redirección 302 Found, indicando que el
recurso ha sido movido temporalmente.
6. Instrucción de redirección mediante el encabezado Location a la URL
https://www.cicese.edu.mx/.
7. Cierre de la conexión después de recibir la respuesta.
curl https://www.cicese.edu.mx
Secuencia de eventos:
1. Resolución DNS para obtener la dirección IP de www.cicese.edu.mx.
2. Conexión TCP al puerto 443 del servidor.
3. Establecimiento de una conexión segura TLS/SSL.
4. Envío de una solicitud HTTP GET para el recurso raíz (/).
5. Respuesta del servidor con un código de estado y contenido (por ejemplo, 200 OK).
6. Descarga del contenido del recurso solicitado.
7. Cierre de la conexión al finalizar la transferencia de datos.
Si el servidor responde con un contenido HTML, curl mostrará el resultado en la terminal
por defecto.

3
Sistemas distribuidos en Internet Tarea de http 26 de septiembre de 2024

curl –L https://www.cicese.edu.mx
Secuencia de eventos:
1. Resolución DNS para obtener la dirección IP del servidor en www.cicese.edu.mx.
2. Conexión TCP y negociación TLS/SSL para establecer una comunicación segura
en el puerto 443.
3. Envío de la solicitud HTTP GET al recurso raíz (/).
4. Recepción de la respuesta 302 Found y la redirección a una nueva URL
(https://www.cicese.edu.mx/).
5. Seguimiento de la redirección automática gracias a la opción -L.
6. Nueva solicitud GET a la URL redirigida.
7. Respuesta final del servidor con el contenido solicitado (200 OK).
8. Descarga del contenido y cierre de la conexión.
Este proceso muestra cómo curl maneja una solicitud con redirección utilizando la opción -
L, permitiendo seguir automáticamente las indicaciones del servidor para acceder a la URL
correcta.

III. Solicitud HEAD


curl --head https://www.cicese.edu.mx
Secuencia de eventos:
1. Resolución DNS para obtener la dirección IP de www.cicese.edu.mx.
2. Conexión TCP al puerto 443 del servidor.
3. Establecimiento de una conexión segura mediante TLS/SSL.
4. Envío de una solicitud HEAD para obtener solo los encabezados del recurso raíz (/).
5. Respuesta del servidor con los encabezados HTTP (sin cuerpo).
6. Cierre de la conexión después de que los encabezados han sido recibidos.
Este flujo es típico cuando usas curl --head, permitiéndote obtener información sobre un
recurso sin descargar su contenido completo, lo que es útil para verificar el estado de un
servidor o ver detalles de configuración como políticas de caché, cookies, y más.

4
Sistemas distribuidos en Internet Tarea de http 26 de septiembre de 2024

IV. Solicitudes POST y PUT


POST

• Se envían datos al servidor (e.g., formulario o JSON).


• curl usa -d para incluir los datos en el cuerpo de la solicitud.
• Se agrega el encabezado Content-Type según el formato de los datos (formulario o
JSON).
• Se especifica -X POST para indicar el método POST
PUT
Similar a POST, pero para actualizar recursos. Se utiliza -X PUT para cambiar el método
HTTP.

V. Peticiones HTTP/2 y HTTP/3 en CURL.


HTTP/2
Se usa --http2 en curl para indicar el protocolo. El servidor responde con los datos si soporta.
Ejemplo: curl --http2 -v https://www.cicese.mx
HTTP/3
Se usa --http3 en curl si el cliente y el servidor soportan HTTP/3.
Ejemplo: curl --http3 -v https://www.cicese.mx

REFERENCIAS

https://kinsta.com/es/base-de-conocimiento/que-es-una-peticion-http/
Presentaciones de la clase

También podría gustarte