diff options
author | Brad Fitzpatrick <bradfitz@golang.org> | 2011-06-20 13:39:03 -0700 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@golang.org> | 2011-06-20 13:39:03 -0700 |
commit | 922ceaddd21289e90b35924b74cc6163a34ab40a (patch) | |
tree | fadd5d542b7ad549149a648c505c97018317ea83 | |
parent | cf201ed6a00223e1e6dd69e884f9bcd25ce2b62c (diff) | |
download | go-922ceaddd21289e90b35924b74cc6163a34ab40a.tar.gz go-922ceaddd21289e90b35924b74cc6163a34ab40a.zip |
http: permit handlers to explicitly remove the Date header
We'll do the right thing by default, but people wanting minimal
response sizes can explicitly remove the Date header.
(empty fields aren't written out)
R=rsc
CC=golang-dev
https://golang.org/cl/4634048
-rw-r--r-- | src/pkg/http/serve_test.go | 15 | ||||
-rw-r--r-- | src/pkg/http/server.go | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/pkg/http/serve_test.go b/src/pkg/http/serve_test.go index dc4594a790..40de54747d 100644 --- a/src/pkg/http/serve_test.go +++ b/src/pkg/http/serve_test.go @@ -781,6 +781,21 @@ func TestHandlerPanic(t *testing.T) { } } +func TestNoDate(t *testing.T) { + ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) { + w.Header()["Date"] = nil + })) + defer ts.Close() + res, err := Get(ts.URL) + if err != nil { + t.Fatal(err) + } + _, present := res.Header["Date"] + if present { + t.Fatalf("Expected no Date header; got %v", res.Header["Date"]) + } +} + type errorListener struct { errs []os.Error } diff --git a/src/pkg/http/server.go b/src/pkg/http/server.go index bb47430260..7f1b8a2bcc 100644 --- a/src/pkg/http/server.go +++ b/src/pkg/http/server.go @@ -254,7 +254,7 @@ func (w *response) WriteHeader(code int) { } } - if w.header.Get("Date") == "" { + if _, ok := w.header["Date"]; !ok { w.Header().Set("Date", time.UTC().Format(TimeFormat)) } |