Creating file servers
Although a file server is not a web server per se, it is closely connected to web services because it is being implemented using similar Go packages. Additionally, file servers are frequently used for supporting the functionality of web servers and web services.
Go offers the http.FileServer()
handler for doing so, as well as http.ServeFile()
. The biggest difference between these two is that http.FileServer()
is an http.Handler
whereas http.ServeFile()
is not. Additionally, http.ServeFile()
is better at serving single files whereas http.FileServer()
is better at serving entire directory trees.
A simple code example of http.FileServer()
is presented in fileServer.go
:
package main
import (
"fmt"
"log"
"net/http"
)
var PORT = ":8765"
func defaultHandler(w http.ResponseWriter, r *http.Request) {
log.Println("Serving:", r.URL.Path, "from", r.Host)
w.WriteHeader(http.StatusOK...