]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: document use of DetectContentType
authorRuss Cox <rsc@golang.org>
Mon, 13 Feb 2012 04:14:48 +0000 (23:14 -0500)
committerRuss Cox <rsc@golang.org>
Mon, 13 Feb 2012 04:14:48 +0000 (23:14 -0500)
Fixes #2365.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/5653070

src/pkg/net/http/server.go
src/pkg/net/http/sniff.go

index 8c4822ec748f4b906b3dda3bcbd6df14c9a64188..fb3bc817562d74fbdffacaf93dc7b76108fefbdf 100644 (file)
@@ -59,7 +59,9 @@ type ResponseWriter interface {
 
        // Write writes the data to the connection as part of an HTTP reply.
        // If WriteHeader has not yet been called, Write calls WriteHeader(http.StatusOK)
-       // before writing the data.
+       // before writing the data.  If the Header does not contain a
+       // Content-Type line, Write adds a Content-Type set to the result of passing
+       // the initial 512 bytes of written data to DetectContentType.
        Write([]byte) (int, error)
 
        // WriteHeader sends an HTTP response header with status code.
index c1c78e2417d3f0024c00df1b2e3d6691f1a94cc7..68f519b0542099a1f9dca3994abda70e2b43dee4 100644 (file)
@@ -9,15 +9,15 @@ import (
        "encoding/binary"
 )
 
-// Content-type sniffing algorithm.
-// References in this file refer to this draft specification:
-//   http://mimesniff.spec.whatwg.org/
-
-// The algorithm prefers to use sniffLen bytes to make its decision.
+// The algorithm uses at most sniffLen bytes to make its decision.
 const sniffLen = 512
 
-// DetectContentType returns the sniffed Content-Type string
-// for the given data. This function always returns a valid MIME type.
+// DetectContentType implements the algorithm described
+// at http://mimesniff.spec.whatwg.org/ to determine the
+// Content-Type of the given data.  It considers at most the
+// first 512 bytes of data.  DetectContentType always returns
+// a valid MIME type: if it cannot determine a more specific one, it
+// returns "application/octet-stream".
 func DetectContentType(data []byte) string {
        if len(data) > sniffLen {
                data = data[:sniffLen]