Neste trabalho iremos continuar explorando a implementação de uma aplicação rodando sobre TCP através da programação com sockets. Este trabalho tem a finalidade de trazer o conhecimento de programação e funcionamento básico do protocolo TCP, demonstrando os serviços que o TCP fornece para a camada de aplicação. Baseado no trabalho anterior, iremos transformar o servidor em um Servidor HTTP simplificado.
GET /pagina.html HTTP/1.1http://[IP_do_Servidor]:[Porta]/arquivo.html.HTTP/1.x 200 OK (sucesso) ou códigos de erro pertinentes.Content-Type (configurado dinamicamente conforme a extensão do arquivo).Content-Length (valor exato do tamanho do arquivo em bytes).../../arquivo_do_sistema).pagina.html) que aparecer na lista.Content-Length. Sem ele, o navegador não sabe quantos bytes esperar e manterá a conexão em aberto (loading infinito) até que ocorra um timeout ou a conexão seja encerrada abruptamente. O valor deve ser o tamanho exato do corpo da mensagem (o arquivo) em bytes.
Para testes iniciais, você pode utilizar este modelo de arquivo (ex: index.html):
<html> <head> <title>Trabalho 3 - Redes</title> </head> <body> <h1>Servidor HTTP Funcional</h1> <p>Se você está vendo esta página, seu servidor TCP aceitou a conexão e processou o GET corretamente. </p> </body> </html>
O seu servidor deve ser capaz de realizar o parsing (análise) de uma requisição enviada pelo browser e gerar uma resposta compatível.
GET /pagina.html HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 Accept: text/html,image/jpeg Accept-Language: pt-BR,en-US Connection: keep-alive
Exemplo de uma resposta HTTP que seu servidor deve gerar: Observe a estrutura: Linha de Status → Cabeçalhos → Linha em Branco (CRLF) → Conteúdo do Arquivo.
HTTP/1.1 200 OK Date: Mon, 15 Mar 2026 12:00:00 GMT Server: MeuServidorSocket/1.0 Content-Type: text/html Content-Length: 112 Connection: close <html> <head><title>Resposta Sucesso</title></head> <body><h1>Arquivo entregue com sucesso!</h1></body> </html>