Git Product home page Git Product logo

go-server's Introduction

Go Server - Servidor de Arquivos Simples

Este é um servidor de arquivos simples escrito em Go, que permite listar e fazer download de arquivos de um diretório especificado. O servidor foi implementado sem o uso da biblioteca http nativa do Go.

image

Funcionalidades

O servidor possui as seguintes funcionalidades:

  • Listagem de diretórios: Quando uma requisição GET é feita para o servidor com um caminho de diretório, o servidor retorna uma página HTML com a lista de arquivos e subdiretórios encontrados nesse diretório.
  • Download de arquivos: O servidor permite que o usuário faça o download de arquivos específicos. Quando uma requisição GET é feita para o servidor com o caminho de um arquivo válido, o servidor retorna o arquivo como uma resposta HTTP.

Conceitos de Redes de Computadores

Neste código, são utilizados alguns conceitos de redes de computadores. Abaixo, estão brevemente explicados:

  1. Endereço IP: O endereço IP é uma identificação numérica única atribuída a cada dispositivo conectado a uma rede de computadores. No código, o endereço IP do servidor é definido como "localhost", o que significa que o servidor irá escutar apenas as conexões locais na máquina em que está sendo executado.

  2. Porta: Uma porta é um número que identifica um serviço específico em um dispositivo. No código, a porta do servidor é definida como 8000, indicando que o servidor irá ouvir as conexões nessa porta.

  3. Socket: Um socket é um ponto de extremidade em uma conexão de rede. No código, é utilizado um socket TCP para estabelecer a comunicação com os clientes. O servidor cria um socket TCP e aguarda por conexões de clientes.

  4. Protocolo HTTP: O protocolo HTTP (Hypertext Transfer Protocol) é um protocolo de aplicação utilizado para a comunicação entre clientes e servidores na Web. O servidor implementa um parser HTTP básico para interpretar as requisições recebidas dos clientes e gerar as respostas apropriadas.

  5. TCP/IP: O TCP/IP é uma família de protocolos de comunicação que são amplamente utilizados na Internet. O servidor utiliza o protocolo TCP/IP para estabelecer a conexão com os clientes e transmitir os dados entre eles.

Execução do Servidor

Para executar o servidor:

./main
  1. O servidor será iniciado e começará a escutar as conexões na porta especificada.
  2. Você pode acessar o servidor abrindo um navegador da web e digitando o seguinte endereço na barra de endereços:
http://localhost:8000

Para testar alterações, compilar e executar:

go run main.go

Lembre-se de substituir a porta se você alterou a constante PORT no código.

Contribuição

Sinta-se à vontade para contribuir com melhorias para este servidor.

go-server's People

Contributors

fm4teus avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.