Go Web Application Read / Write Header

スポンサーリンク

Go Read and Write Header

Header is important for web application.

To send header parameter, we can change behavior of web application in server side.

And for response from server to client, we can set Response header to change client behaviour.

Let’s see Header for Go Web.

Examples

This is the example to support Headers

  • Read Header info
  • Write Header info (Response Code)
  • Redirect

params.go

package web

import (
	"encoding/json"
	"fmt"
	"net/http"
)

func Headers(w http.ResponseWriter, r *http.Request) {
	h := r.Header
	//h := r.Header["Accept-Encoding"]
	//h := r.Header.Get("Accept-Encoding")
	fmt.Fprintln(w, h)
}

func WriteHeaderX(w http.ResponseWriter, r *http.Request) {
	w.WriteHeader(501)
	fmt.Fprintln(w, "Not Implemented")
}

func WriteHeaderRedirect(w http.ResponseWriter, r *http.Request) {
	w.Header().Set("Location", "https://google.com")
	w.WriteHeader(302)
}

main.go

import (
	"fmt"
	"net/http"
	"github.com/DJ110/gorefs/web"
)

func main() {
   mux := http.NewServeMux()
   mux.HandleFunc("/headers", web.Headers)
   mux.HandleFunc("/writeheader", web.WriteHeaderX)
   mux.HandleFunc("/redirect", web.WriteHeaderRedirect)
   server := &http.Server{
		Addr:           "127.0.0.1:8080",
		Handler:        mux,
		ReadTimeout:    time.Duration(60 * int64(time.Second)),
		WriteTimeout:   time.Duration(600 * int64(time.Second)),
		MaxHeaderBytes: 1 << 20,
   }
   server.ListenAndServe()
}

Read Header Info

Use Header property. Header is map data. If you want to get each header key-value, use map parameter get.

Write Header

If you want to write Response code, just use WriteHeader method with code.

For other parameters, can use Header().Set

Set method takes key-value style.

golang
スポンサーリンク
Professional Programmer2

コメント