That sounds like a bug. The whole reason for including a message is for older user-agents that don't understand redirects (must be *really* old! So the Content-Type should be set as if responding normally to a GET request. I think Redirect should be setting Content-Type (perhaps only if it's not already set?).
On Tue, Jul 18, 2017 at 8:41 PM Dmitri Shuralyov <shurc...@gmail.com> wrote: > I've written a little middleware to help catch instances where I write > some content in an HTTP handler, but forget to set the Content-Type header. > I prefer to always set it to avoid forcing the browser to guess. It feels > good and produces more predictable results. > > I've noticed some of my redirect responses being marked as not having > Content-Type header. > > This is because of the implementation of http.Redirect: > > > https://github.com/golang/go/blob/83fb9c8d9f5511f5aca2a0eb9f7507e2527a76a9/src/net/http/server.go#L1961-L2022 > > It includes the following snippet: > > // RFC 2616 recommends that a short note "SHOULD" be included in the > // response because older user agents may not understand 301/307. > // Shouldn't send the response for POST or HEAD; that leaves GET. > if r.Method == "GET" { > note := "<a href=\"" + htmlEscape(urlStr) + "\">" + statusText[code] + > "</a>.\n" > fmt.Fprintln(w, note) > } > > So if the method is GET, it writes a note that looks like HTML... But it > doesn't set a Content-Type. > > Given my desire to be explicit about setting Content-Types, should I > always use http.Redirect as follows: > > if r.Method == "GET" { > w.Header().Set("Content-Type", "text/html; charset=utf-8") > } > http.Redirect(w, req, targetURL, http.StatusSeeOther) > > Or is this something that http.Redirect should be doing itself? > > Or is it fine not to set Content-Type header in the case of a redirect > status code? If so, why is that? > > Thanks. > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.