Skip to content

Should we sniff content? #18

@lpar

Description

@lpar

Turning part of #16 into a standalone item.

In case the mime type cannot be determined from the extension by the mime.TypeByExtension method, ServeContent will try to infer from the actual file content: https://golang.org/src/net/http/fs.go?s=4932:5036#L198 so it will return a type like "application/x-gzip", whereas http.FileServer would have return "text/plain" for a YAML file, for example. This can lead to bugs, for example when trying to use the Swagger UI.
=> workaround: register such non-standard types (there's actually no official mime type for YAML):
mime.AddExtensionType(".yaml", "application/x-yaml")

I'm not a big fan of content sniffing, as it can lead to really obscure bugs. However, it wouldn't be all that hard to read a chunk from the uncompressed version of the file, and call http.DetectContentType to pick a MIME type.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions