Bash, Networking, Snippets

One line Bash HTTP Server

Here is a quick snippet I use all the time when I want to set up an HTTP server on the fly, without leaving the comfort of my terminal.

This is the command:

$ while true; do { echo -e 'HTTP/1.1 200 OK\r\n'; echo "Hello World"} | nc -l 3000; done

Warning: this will block your current terminal.

You will see the following output as you receive requests:

GET / HTTP/1.1
Host: localhost:3000
User-Agent: curl/7.54.0
Accept: */*

If you want your terminal back, or for any other reason want to put the command in the background while it is running, simply press ctrl+z.

When you are done and want to kill the background process, you can do so with

$ kill %1

Leave a Reply