Sistemas de Computação II - Trabalho 1

Descrição do Trabalho

As chamadas a sockets necessárias para construção dos programas cliente e servidor pedidos estão documentadas em Comer e Stevens. Os dois livros estão disponíveis para consulta na Biblioteca da Informática. O capítulo 6 do livro de Stevens encontra-se disponível para cópia no Document Center (pasta Sistemas de Computação II). Apenas as páginas de 258 a 286 são necessárias para o primeiro trabalho.

Primeira Parte: Construção de um Cliente HTTP muito simples

Data de entrega: 28/08

Deve ser construído um programa C que, dado um nome de máquina, estabeleça uma conexão TCP com a porta 80 dessa máquina (servidor WWW). O programa deve pedir uma URI (uniform resource identifier) ao usuário e requisitar ao servidor o documento em questão. A resposta do servidor deve ser mostrada na tela, sem nenhum processamento.

exemplo:

[oxum:~/projeto/sc2] browserbobo ieponda.inf.puc-rio.br

Entre com o URI
/~noemi/sc2-97/sc2.html

RESPOSTA:
- - - aqui viria o "source html retornado pelo servidor" - - -

sugestão: Leia o início do capítulo 6 do Stevens, com a descrição geral de um cliente com conexão, e veja o exemplo de código C dado para o caso de um cliente TCP.

Para uma descrição do protocolo de comunicação HTTP, que o cliente deve usar para se comunicar com o servidor, veja aqui.

Segunda Parte: Construção de um Servidor HTTP simples

Data de entrega: 11/09

Deve ser construído um servidor simples de HTTP, que deve tratar requisições do tipo GET . O servidor deve ser um programa C, seguindo o paradigma de servidor multiprocesso com disparo de processos sob demanda, discutido em sala de aula. O programa deve tentar repetidamente associar-se a alguma porta, até conseguir, e então imprimir na tela o número da porta obtida.

O servidor deve poder ser usado tanto com o cliente desenvolvido na primeira parte do trabalho como com qualquer outro browser, como, por exemplo, o netscape. (Para que um browser qualquer faça acesso a uma porta não padrão basta especificar um endereço do tipo http://blablabla:numeroporta/)

Cada grupo pode definir uma pequena hierarquia de documentos html, incluindo um documento raiz (index.html), por onde o cliente possa navegar ao fazer acessos a esse servidor.

sugestão: Leia o início do capítulo 6 do Stevens, com a descrição geral de um servidor com conexão, e veja o exemplo de código C dado para o caso de um servidor TCP (pag. 284).

ATENÇÃO: Questões de Ordem

Last update: Tue Sep 2 14:29:04 EST 1997 by Noemi