MiniProyecto 2- HTTPS
MiniProyecto 2- HTTPS
MiniProyecto 2- HTTPS
Facultad de Sistemas
Departamento de Arquitectura y Redes de Computadoras
Arquitectura de Protocolos
I Semestre 2024
1. ¿En qué consiste HTTP? ¿y HTTPS? ¿Qué puertos y protocolo en la capa de transporte
utilizan?
HTTP (Hypertext Transfer Protocol)
Descripción: HTTP es un protocolo de la capa de aplicación utilizado para la
transferencia de documentos hipermedia, como páginas web, a través de la World
Wide Web. Fue diseñado para ser simple y rápido, permitiendo la comunicación
entre clientes (navegadores web) y servidores web.
Funcionalidad:
o Los clientes envían solicitudes HTTP a los servidores, que responden con
los datos solicitados (como documentos HTML, imágenes, etc.).
o Utiliza métodos como GET, POST, PUT, DELETE, entre otros, para definir la
acción que se desea realizar.
Puerto y Protocolo de Transporte:
o Puerto: 80
o Protocolo de Transporte: TCP (Transmission Control Protocol)ç
Funcionalidad:
o Proporciona autenticación del servidor y, opcionalmente, del cliente.
o Encripta los datos durante la transmisión para protegerlos contra
interceptaciones y ataques de intermediario.
Puerto y Protocolo de Transporte:
o Puerto: 443
o Protocolo de Transporte: TCP (Transmission Control Protocol)
2. Dibuja el esquema de una red donde hay un servidor de HTTP sirviendo páginas a los
ordenadores de la intranet. Dicho servidor HTTP se comunica con un servidor SQL de bases
de datos para resolver páginas dinámicas ASP o PHP.
3. ¿Cuál és la sintaxis de la instrucción GET del protocolo HTTP? ¿Qué otras instrucciones
existen en dicho protocolo?
La instrucción GET se utiliza para solicitar un recurso específico del servidor. Su
sintaxis básica es la siguiente:
GET /ruta-del-recurso HTTP/1.1
Host: nombre-del-servidor
Otras Instrucciones en el Protocolo HTTP. Además de GET, HTTP define varios
métodos de solicitud, cada uno con un propósito específico:
HEAD /ruta-del-recurso HTTP/1.1
Host: nombre-del-servidor
POST /ruta-del-recurso HTTP/1.1
Host: nombre-del-servidor
Content-Type: tipo-de-contenido
Content-Length: longitud-del-contenido
PUT /ruta-del-recurso HTTP/1.1
Host: nombre-del-servidor
Content-Type: tipo-de-contenido
Content-Length: longitud-del-contenido
DELETE /ruta-del-recurso HTTP/1.1
Host: nombre-del-servidor
CONNECT servidor-destino:puerto HTTP/1.1
Host: nombre-del-servidor
4. En la petición de una página web mediante el protocolo HTTP, ¿qué tipos de respuestas
son las indicadas por los códigos 1xx, 2xx, 3xx, 4xx y 5xx?
400 Bad Request: La solicitud no pudo ser entendida o estaba mal formada.
401 Unauthorized: La solicitud requiere autenticación. El cliente debe
autenticarse para obtener la respuesta solicitada.
403 Forbidden: El servidor entiende la solicitud, pero se niega a autorizarla.
404 Not Found: El recurso solicitado no se encuentra disponible en el servidor.
405 Method Not Allowed: El método utilizado en la solicitud no está permitido
para el recurso solicitado.
408 Request Timeout: El servidor agotó el tiempo de espera para recibir la
solicitud completa del cliente.
5xx: Errores del Servidor
Indican que el servidor falló al cumplir con una solicitud válida.
500 Internal Server Error: El servidor encontró una condición inesperada que
le impidió completar la solicitud.
501 Not Implemented: El servidor no reconoce el método de solicitud o no
tiene la capacidad para cumplirla.
502 Bad Gateway: El servidor, actuando como puerta de enlace o proxy,
recibió una respuesta inválida del servidor de respaldo.
503 Service Unavailable: El servidor no está disponible temporalmente,
generalmente debido a mantenimiento o sobrecarga.
504 Gateway Timeout: El servidor, actuando como puerta de enlace o proxy,
no recibió una respuesta a tiempo del servidor de respaldo.
505 HTTP Version Not Supported: El servidor no soporta la versión del
protocolo HTTP utilizada en la solicitud.
5. En el protocolo HTTP ¿Cuáles son los cinco campos que te parecen más importantes en los
"headers" de la petición de una página web y de la respuesta?
Campos Importantes en los Headers de una Petición HTTP
Host
User-agent
Accept
Content-type
Autorization
6. ¿Viene algún software de servidor de HTTP con Windows Server? ¿Desde dónde se instala
y desde dónde se administra? ¿Y para Windows no server?
IIS (Internet Information Services):
Descripción: IIS es un servidor web flexible y seguro desarrollado por
Microsoft, incluido en todas las versiones de Windows Server.
Instalación:
o Server Manager:
- Abre Server Manager desde el menú de inicio.
- Ve a Manage > Add Roles and Features.
- Sigue el asistente hasta llegar a la sección Server Roles.
- Selecciona Web Server (IIS) y sigue las instrucciones para
completar la instalación.
PowerShell:
o Puedes instalar IIS usando PowerShell con el siguiente comando:
- Install-windowsFeature –name web-server –
includemanagementTools
Administración:
o IIS Manager: Una vez instalado, se puede administrar desde IIS Manager,
que se encuentra en Administrative Tools.
o PowerShell: También puedes usar PowerShell para administrar IIS. Por
ejemplo:
- Get-IISSite
- Start-IISSite -Name "NombreDelSitio"
Software de Servidor HTTP en Windows (no server) IIS Express:
Descripción: Una versión ligera de IIS que es ideal para desarrolladores y
pruebas locales en sistemas Windows que no son Windows Server.
Instalación:
o Se instala normalmente como parte de Visual Studio.
También se puede descargar e instalar manualmente desde el sitio web de
Microsoft.
o Administración:
- IIS Express se administra típicamente desde Visual Studio, donde
puedes iniciar y detener el servidor web para aplicaciones
específicas.
- Para administración avanzada, puedes editar el archivo de
configuración applicationhost.config ubicado en el directorio de
usuario.
7. ¿Cuál es el software de servidor de HTTP más conocido para Unix/Linux? ¿Y el software de
servidor más ligero de HTTP?
Software de Servidor HTTP más Conocido para Unix/Linux
Apache HTTP Server (httpd)
Software de Servidor HTTP más Ligero
Nginx
8. Al instalar un servidor de HTTP, ¿Qué parámetros a configurar piensas que serán los más
importantes?
Configuración Básica del Servidor
Puerto de Escucha
Nombre del Servidor (ServerName)
DocumentRoot
Configuración de SSL/TLS
Configuración de Permisos y Acceso
Configuración de Virtual Hosts
Configurar un servidor HTTP de manera adecuada implica asegurar que todos estos parámetros se
ajusten a las necesidades específicas del entorno y las aplicaciones que se van a servir. Esto incluye
desde configuraciones básicas y de seguridad hasta opciones de rendimiento y monitoreo.
9. De qué maneras un servidor web puede servir páginas de más de un nombre de dominio
("virtual hosting"). Es decir, si necesitamos que un servidor web aloje las páginas de
www.pepe.com y www.jose.com, ¿Cómo podemos conseguir qué distinga cuál le están
pidiendo?
Name-Based Virtual Hosting es el más común y utiliza el encabezado Host de la
solicitud HTTP.
IP-Based Virtual Hosting asigna una dirección IP diferente para cada sitio web.
Port-Based Virtual Hosting utiliza diferentes puertos para cada sitio web.
La configuración específica puede variar ligeramente según el servidor web y el sistema
operativo, pero los principios básicos son los mismos.
10. ¿Cuál es la sintaxis completa de una URL?
https://user:pass@www.ejemplo.com:8080/ruta/al/recurso.html?busqueda=pyth
on&pagina=2#seccion1
Usted deberá desarrollar cada una de las actividades, las mismas pueden ser desarrolladas en
ambiente Windows o Linux: