Server Simples usando Python, PHP ou Node.js

Servidor simples, com python e node.js. HTTP simple server

Índice de conteúdo:

  1. Algumas vantagens de usar um Servidor Web local
  2. Preparação do ambiente de trabalho
  3. Usando Python
  4. Usando PHP
  5. Usando Node.js

Sempre que introduzimos na barra de endereço do nosso navegador um endereço como https://google.com ou https://wikipedia.org, estamos a fazer uma solicitação a um computador na Internet que nos envia a página web pedida como resposta. Esse computador que envia a resposta é um Servidor Web. Ele recebe uma solicitação HTTP do lado do cliente (o navegador) e envia uma resposta HTTP (Hypertext Transfer Protocol) com a página HTML (HyperText Markup Language) que visualizamos no monitor.

O objetivo deste artigo é explicar, de forma clara para quem está a iniciar, como criar um Servidor Web simples para uso em casa e fazer solicitações de páginas HTML usando o protocolo HTTP no computador local.

Vamos testar usando o servidor web integrado do Python, PHP e Node.js

Quando damos os primeiros passos em Desenvolvimento Web, normalmente criamos uma pasta local onde guardamos o ficheiro HTML (por exemplo, index.html). Após escrevermos algumas linhas de código, se quisermos visualizar a página e acompanhar o desenvolvimento, abrimos o ficheiro diretamente no navegador com um duplo clique ou através de um menu de atalho.

Na barra de endereço aparecerá algo assim:

file:///home/nome_utilizador/Documentos/index.html

Neste caso, estamos a usar o protocolo de ficheiro (file protocol).

Se, em vez disso, estivermos a usar um Servidor Web local — ou seja, um servidor a correr no nosso próprio computador — então teremos uma URL semelhante a:

  • http://127.0.0.1
  • http://localhost
  • http://0.0.0.0:8000/

Este formato utiliza o protocolo HTTP (Hypertext Transfer Protocol) e aproxima-se da estrutura usada num servidor externo. É o que encontramos quando terminamos o site no nosso computador, fazemos o upload para um servidor real e passamos à fase chamada de produção, ou simplesmente quando navegamos na Internet.

Algumas vantagens de usar um Servidor Web local:

  • Melhor organização das pastas e ficheiros do site muito próximo do que será quando o site estiver no ar num servidor externo.
  • A possibilidade de usar linguagens de programação que só podem ser utilizadas do lado do servidor como por exemplo o PHP.
  • Importar scripts tal como javaScript
  • Não temos a necessidade de estar conectados à Internet para a usarmos.
  • Todo o aprendizado que daí resulta pois por cada problema que vai surgindo enquanto estivermos em modo de desenvolvimento é algo que temos que resolver e para isso vamos procurar solução na Internet e aprender muita coisa tal como terminologias e soluções que poderão ser de muita utilidade quando estivermos em modo de produção ou quando o nosso site estiver num servidor externo.

Preparação do ambiente de trabalho

Para efeito de organização e teste vamos criar uma pasta que poderá ter o nome de WebDev ou um outro nome qualquer.

$ mkdir WebDev

Entramos na pasta WebDev

$ cd WebDev

Criamos duas páginas HTML, uma com extensão .html e outro com .php index.html e index.php usando um editor da nossa preferência.

Lista de alguns editores. Podem ser instalados diretamente do Software Center:

  • Gedit
  • Geany
  • Atom

Eu usei o editor vim:

$ vim index.html

Estas serão nossas páginas de teste:

index.html

Página index.html

index.php

Página html index.php para efeito de teste

1 - Usando Python

Verificamos qual versão de Python se encontra instalado:

$ python -V

No meu caso retornou o seguinte:

Python 3.11.2

Conhecendo a nossa versão de python podemos também saber que comando usar para iniciar o nosso http server.

Se usarmos este comando em Python versão 3 ou superior vai gerar uma mensagem de erro. Este comando só funciona com Python versão inferior a 3.

$ python -m SimpleHTTPServer 8000

/usr/bin/python: No module named SimpleHTTPServer

Para versão 3 ou superior do python usa-se o seguinte comando

$ python -m http.server

Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) …

Usando o comando acima com o modificador “-m” serão servidos ficheiros que se encontram no actual directório.

A nossa página index.html:

Página html, index.html, python server

Se se quiser que estejam disponíveis ficheiros num outro directório usaremos o comando com a opção -d ou –directory neste caso vamos usar o diretório /tmp como exemplo

$ python -m http.server --directory /tmp

Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

A porta 8000 é a porta usada por predefinição pelo python http.server mas pode-se usar uma outra porta caso seja essa a nossa vontade ou caso estejamos já a usar a porta 8000.

Neste exemplo vamos usar a porta 9000:

$ python -m http.server 9000

Se quisermos que o Servidor vincule somente o localhost então usaremos o comando com a opção --bind e com o endereço do localhost que é 127.0.0.1:

$ python -m http.server --bind 127.0.0.1

Serving HTTP on 127.0.0.1 port 8000 (http://127.0.0.1:8000/) ...

2 - Usando PHP

Como no caso anterior, as solicitações são feitas a partir do directório onde foi iniciado o server PHP a não ser que a opção -t seja indicada para apontar para um directório raiz diferente do directório onde nos encontramos.

Entramos no diretório DesWeb e iniciamos o nosso server.

Dentro desta pasta já temos a nossas páginas index.html e index.php

$ php -S localhost:8000

php testing server started

Copiamos o endereço apresentado "http://localhost:8000" e colamos na barra de endereço do nosso navegador.

Apresentação da nossa página index.php

Como se pode ver, havendo duas páginas de nome index sendo uma index.html e outra index.php o server PHP apresenta o index.php

Apresentação da página index.php no navegador usando server php

3 - Usando Node.js

Verificamos se node.js se econtra instalado com o seguinte comando:

$ node -v

v18.15.0

Em caso de não estar instalado, instala-se com o seguinte comando:

$ sudo dnf install nodejs

Usaremos npx que é um executor de pacotes e vem integrado no gerenciador de pacotes npm (node package manager), npm é instalado junto com o Node.js

Se quisermos verificar a versão do npm

$ npm -v

O uso do npx é um processo simples e direto não necessitando da instalação global do pacote http-server que vamos testar. O seguinte comando exibe o pacote e a versão do mesmo. Para proceder à instalação é só dizer sim digitando "y" e o pacote é instalado e o http-server corre no diretório onde foi executado o comando.

$ npx http-server

executando npx http-server

Visualização da página:

Visualização da página usando o http-server

NPM, pacote simple-server.

Entramos na pasta onde se encontra o nosso projeto e fazemos a instalação do simple-server. Neste post vamos fazer uma instalação local mas se quiser instalar global: $ npm install --global simple-server

$ npm install simple-server

npm instalando o simple-server

Neste momento se tentarmos iniciar o server com o comando $ npm run simple-server vai dar erro:

Mensagem de erro por falta de inclusão de script no package.json

Conteúdo da pasta onde se encontra a nossa página index.html e index.php após a instalação do simple-server. A pasta node-modules, os ficheiros package.json e package-lock.json foram gerados com a instalação do simple-server

Conteúdo da pasta onde se encontra a nossa página index.html e index.php após a instalação do simple-server

Ficheiro package.json logo após a instalação. Este ficheiro contém informações sobre os pacotes instalados, neste caso é um pacote: simple-server

O JSON é um fomato que armazena informações de forma estruturada e apresenta como sintax o nome entre aspas seguido de dois pontos seguido do valor que neste caso é um string e também por isso se encontra entre aspas. Neste ficheiro temos o nome do pacote "simple-server" seguido de ":" seguido do valor que neste caso é a versão do simple-server

Ficheiro package.json na forma original após a instalação

Vamos armazenar mais uma informação para que possamos iniciar o simple-server. Isto é necessário porque fizemos uma intalação local envez de global (um utilizador sem privilégios especiais pode fazer esta instalação quando não global).

Editamos o ficheiro package.json onde introduzimos mais um objeto como está na imagem logo a seguir. O nome que escolhi é "server" mas pode ser dado o nome que acharmos melhor desde que o valor seja "simple-server"

Ficheiro package.json logo após ter sido editado.

Ficheiro package.json após ter sido editado e inserido o script

$ npm run server

output do comando npm run server

O endereço local é copiado no clipboard, portanto é só abrir o navegador e colar o endereço.

simple-server rodando com visualização em firefox.

Índice de conteúdo:

  1. Algumas vantagens de usar um Servidor Web local
  2. Usando Python
  3. Usando PHP
  4. Usando Node.js

Comentários

Mensagens populares deste blogue

Dominando o Comando history no Linux

Como Instalar o Fedora Linux 42: do Download à Configuração

Fedora 42: As Novidades da Nova Versão do Fedora Linux