Capítulo 13. Programación de servicios Web
especializados
13.1. Objetivos
Entender los principios básicos del web programado sin herramientas de ayuda.
13.2. Documentación de las transparencias
Las transparencias relevantes para realizar esta práctica son:
- Páginas 47-50 de las transparencias de Bibliotecas de C y llamadas al sistema
13.3. Servidor Web trivial
Realice un servidor web que muestre la fecha y la hora local a un navegador remoto, mostrando
además el nombre del usuario con que ejecuta el servidor, y el nombre de la máquina. Ponga como
parámetro el número de puerto, que no podrá ser privilegiado (menor que 1024). El servidor va a
esperar conexiones e inmediatamente responderá una cabecera HTTP apropiada y los datos pedidos
en HTML. La máquina la averiguará con la llamada al sistema gethostname y el nombre del
usuario con getuid y getpwuid, campo pw_gecos (ver manuales). La respuesta puede ser algo así:
HTTP/1.1 200 OK
Content-Type: text/html
Server: webstiempo
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head> <title>Servidor web de practicas de ARQO </title> </head>
<body>
<h1>Usuario</h1>
<p>JOAQUIN SEOANE PASCUAL</p>
<h1>Servidor</h1>
<p>l142</p>
<h1>Fecha y hora</h1>
<p>Thu Nov 18 10:01:14 2010</p>
</body>
</html>
Pruébelo, preferentemente entre máquinas distintas. Por ejemplo, para la respuesta anterior, si el
servidor se hubiera colocado en el puerto 8080 de la máquina l134, se habrá usado el URL
http://l134:8080.
1
Capítulo 13. Programación de servicios Web especializados
13.4. Servidor Web navegable
Realice un servidor web que muestre la información anterior separada por páginas, dando una el
usuario, otra la fecha y la hora, y otra la máquina. La raíz tendría enlaces a los tres. Los URL para en
caso anterior serían:
• http://l134:8080,
• http://l134:8080/nombre,
• http://l134:8080/tiempo y
• http://l134:8080/maquina.
El servidor debe esperar a que el navegador diga GET / o GET /nombre , etc, y responder con el
HTML y cerrar la conexión1
La respuesta de la raiz puede ser algo así:
HTTP/1.1 200 OK
Content-Type: text/html
Server: webstiempo2
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head> <title>Servidor web de practicas de ARQO </title> </head>
<body>
<ul>
<li><a href="nombre">Usuario</a></li>
<li><a href="tiempo">Fecha y hora</a></li>
<li><a href="maquina">Maquina</a></li>
</ul>
</body>
</html>
y las de las ramas como quiera. Puede imitar la de la solución compilada (en el navegador pedir ver
los fuentes).
13.5. Ficheros ofrecidos
En el directorio websimple:
• Solución compilada del servidor web webstiempo.
• Solución compilada del servidor web webstiempo2.
13.6. Resultados pedidos
• Fuentes del servidor web webstiempo.c.
• Fuentes del servidor web webstiempo2.c.
2
Capítulo 13. Programación de servicios Web especializados
Notas
1. En realidad estamos forzando un poco el protocolo HTTP, pero el propósito de la práctica es
demostrativo y no nos interesan los detalles.
3
Comentarios de: Capítulo 13. Programación de servicios Web especializados (0)
No hay comentarios