O que é uma alternativa mais rápida para o http.server (ou SimpleHTTPServer) do Python?

O http.server (ou SimpleHTTPServer para Python 2) do Python é uma ótima maneira de servir o conteúdo do diretório atual a partir da linha de comando:

python -m http.server 

No entanto, na medida em que os servidores web vão, é muito slooooow …

Ele se comporta como se fosse um thread único e, ocasionalmente, causa erros de tempo limite ao carregar módulos AMD JavaScript usando o RequireJS. Pode levar de cinco a dez segundos para carregar uma página simples sem imagens.

O que é uma alternativa mais rápida que é tão conveniente?

O http-server para node.js é muito conveniente e é muito mais rápido que o SimpleHTTPServer do Python. Isso ocorre principalmente porque ele usa E / S assíncrona para tratamento simultâneo de solicitações, em vez de solicitações de serialização.

Instalação

Instale node.js se você ainda não tiver feito isso. Em seguida, use o gerenciador de pacotes do nó ( npm ) para instalar o pacote, usando a opção -g para instalar globalmente. Se você estiver no Windows, precisará de um prompt com permissions de administrador e, no Linux / OSX, você desejará sudo o comando:

 npm install http-server -g 

Isso fará o download de todas as dependencies necessárias e instalará o http-server .

Usar

Agora, em qualquer diretório, você pode digitar:

 http-server [path] [options] 

O caminho é opcional, padronizando para ./public se existir, caso contrário ./ .

As opções são [padrões]:

  • -p O número da porta para ouvir em [8080]
  • -a O endereço do host para ligar a [localhost]
  • -i Exibir páginas de índice do diretório [True]
  • -s ou --silent modo silencioso não registra no console
  • -h ou --help Exibe mensagem de ajuda e sai

Então, para servir o diretório atual na porta 8000, digite:

 http-server -p 8000 

Eu recomendo: Twisted ( http://twistedmatrix.com )

um mecanismo de rede orientado a events, escrito em Python e licenciado sob a licença MIT de código aberto.

É multi-plataforma e vem pré-instalado no OS X desde 10.5. Entre outras coisas, você pode iniciar um servidor web simples no diretório atual com:

 twistd -no web --path=. 

Detalhes

Explicação das opções (consulte twistd --help for more):

 -n, --nodaemon don't daemonize, don't use default umask of 0077 -o, --no_save do not save state on shutdown 

“web” é um comando que executa um servidor web simples em cima do mecanismo asynchronous Twisted. Também aceita opções de linha de comando (depois do comando “web” – veja a twistd web --help para mais):

  --path=  is either a specific file or a directory to be set as the root of the web server. Use this if you have a directory full of HTML, cgi, php3, epy, or rpy files or any other files that you want to be served up raw. 

Há também vários outros comandos, como:

 conch A Conch SSH service. dns A domain name server. ftp An FTP server. inetd An inetd(8) replacement. mail An email service ... etc 

Instalação

Ubuntu

 sudo apt-get install python-twisted-web (or python-twisted for the full engine) 

Mac OS-X (vem pré-instalado desde 10.5, ou está disponível em MacPorts)

 sudo port install py-twisted 

janelas

 installer available for download at http://twistedmatrix.com/ 

HTTPS

O Twisted também pode utilizar certificados de segurança para criptografar a conexão. Use isso com suas opções existentes --path e --port (para HTTP simples).

 twistd -no web -c cert.pem -k privkey.pem --https=4433 

go 1.0 inclui um servidor http & util para servir arquivos com algumas linhas de código.

 package main import ( "fmt"; "log"; "net/http" ) func main() { fmt.Println("Serving files in the current directory on port 8080") http.Handle("/", http.FileServer(http.Dir("."))) err := http.ListenAndServe(":8080", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } } 

Execute esta fonte usando o go run myserver.go ou para construir um go build myserver.go executável go build myserver.go

Tente webfs , é pequeno e não depende de ter uma plataforma como node.js ou python instalado.

Se você usa o Mercurial, você pode usar o servidor HTTP embutido. Na pasta que você deseja exibir:

 hg serve 

Dos docs :

 export the repository via HTTP Start a local HTTP repository browser and pull server. By default, the server logs accesses to stdout and errors to stderr. Use the "-A" and "-E" options to log to files. options: -A --accesslog name of access log file to write to -d --daemon run server in background --daemon-pipefds used internally by daemon mode -E --errorlog name of error log file to write to -p --port port to listen on (default: 8000) -a --address address to listen on (default: all interfaces) --prefix prefix path to serve from (default: server root) -n --name name to show in web pages (default: working dir) --webdir-conf name of the webdir config file (serve more than one repo) --pid-file name of file to write process ID to --stdio for remote clients -t --templates web templates to use --style template style to use -6 --ipv6 use IPv6 in addition to IPv4 --certificate SSL certificate file use "hg -v help serve" to show global options 

Aqui está outro. É uma extensão do Chrome

Depois de instalado, você pode executá-lo criando uma nova guia no Chrome e clicando no botão de aplicativos no canto superior esquerdo

Tem um simples gui. Clique em escolher pasta e, em seguida, clique no link http://127.0.0.1:8887

insira a descrição da imagem aqui

https://www.youtube.com/watch?v=AK6swHiPtew

Considere também devd um pequeno servidor web escrito em go. Binários para muitas plataformas estão disponíveis aqui .

 devd -ol path/to/files/to/serve 

É pequeno, rápido e oferece alguns resources opcionais interessantes, como o live-recarregamento, quando os arquivos são alterados.

dar uma chance a polpetta …

npm install -g polpetta

então você pode

pasta polpetta ~ /

e você está pronto para ir 🙂

Eu achei python -m http.server não confiável – algumas respostas levariam segundos.

Agora eu uso um servidor chamado Ran https://github.com/m3ng9i/ran

Ran: um servidor web estático simples escrito em Go

Usando Servez como um servidor

  1. Baixar Servez
  2. Instale-o, execute-o
  3. Escolha a pasta para servir
  4. Escolha “Iniciar”
  5. Vá para http://localhost:8080 ou escolha “Iniciar navegador”

servez

Observação: eu juntei isso porque o Web Server para Chrome está desaparecendo, já que o Chrome está removendo o suporte para aplicativos e porque eu ofereço suporte a alunos de arte que não têm experiência com a linha de comando