GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

No menu could be recovered. Follow the blue links in the page.

This view

  • Original page
  • New address

GeezerVison is showing gobyexample.com — Go by Example: HTTP Server

Go by Example: HTTP Server

Writing a basic HTTP server is easy using the net/http package.

package main
import (
    "fmt"
    "net/http"
)

A fundamental concept in net/http servers is handlers. A handler is an object implementing the http.Handler interface. A common way to write a handler is by using the http.HandlerFunc adapter on functions with the appropriate signature.

func hello(w http.ResponseWriter, req *http.Request) {

Functions serving as handlers take a http.ResponseWriter and a http.Request as arguments. The response writer is used to fill in the HTTP response. Here our simple response is just “hello\n”.

    fmt.Fprintf(w, "hello\n")
}
func headers(w http.ResponseWriter, req *http.Request) {

This handler does something a little more sophisticated by reading all the HTTP request headers and echoing them into the response body.

    for name, headers := range req.Header {
        for _, h := range headers {
            fmt.Fprintf(w, "%v: %v\n", name, h)
        }
    }
}
func main() {

We register our handlers on server routes using the http.HandleFunc convenience function. It sets up the default router in the net/http package and takes a function as an argument.

    http.HandleFunc("/hello", hello)
    http.HandleFunc("/headers", headers)

Finally, we call the ListenAndServe with the port and a handler. nil tells it to use the default router we’ve just set up.

    http.ListenAndServe(":8090", nil)
}

Run the server in the background.

$ go run http-server.go &

Access the /hello route.

$ curl localhost:8090/hello
hello

Next example: TCP Server.

by Mark McGranaghan and Eli Bendersky | source | license

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.