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.
コメント