DEV Community

Shogo Sensui
Shogo Sensui

Posted on

simplehttp2server on Node.js

There is a standard library called http.server in the Python 3 series that allows you to host a directory in a local environment. It is provided as a SimpleHTTPServer in the Python 2 series, and was useful for hosting web pages in the local environment in a simple way.

simplehttp2server

http.server is hosted by http/1.1, but for those who want to host it by http/2, there is one called GoogleChromeLabs/simplehttp2server. It is a very useful tool, but you need to install it with Homebrew or go get. I developed 1000ch/simplehttp2server as a Node.js wrapper for GoogleChromeLabs/simplehttp2server to make it easy to use it in Web Frontend projects.

That said, it's been about 5 years since I published simplehttp2server in npm, so it's nothing new. A recent change was made to this Node.js wrapper and the command line package that separated it.

simplehttp2server-cli

So now there are simplehttp2server and simplehttp2server-cli packages wrapping binaries. In order to run simplehttp2server on the command line, you need to install the latter.

$ npm install -g simplehttp2server-cli
$ simplehttp2server --help
  -config string
      Config file
  -cors string
      Set allowed origins (default "*")
  -listen string
      Port to listen on (default ":5000")

Now, simplehttp2server can work, and folders in the local environment can be easily hosted with http/2. Note that since this is http/2, it will be accompanied by https, and the default port will be https://localhost:5000. And Google Chrome can't open https://localhost by default due to security issues.

If you enable #allow-insecure-localhost flag from chrome://flags and restart Google Chrome, you can also open https://localhost.

Top comments (0)