Функция http.DetectContentType

Функция http.DetectContentType определяет MIME-тип данных на основе анализа первых 512 байт переданного слайса байтов. В первый параметр мы передаем слайс байтов []byte, содержимое которого нужно проанализировать. Функция возвращает строку с MIME-типом. Если тип не удается определить, возвращается значение "application/octet-stream".

Синтаксис

gohttp.DetectContentType(data []byte) string

Пример

Давайте определим MIME-тип для простой текстовой строки:

gopackage main

import (
  "fmt"
  "net/http"
)

func main() {
  data := []byte("abcde")
  res := http.DetectContentType(data)
  fmt.Println(res)
}

Результат выполнения кода:

go"text/plain; charset=utf-8"

Пример

Давайте определим MIME-тип для JSON-данных:

gopackage main

import (
  "fmt"
  "net/http"
)

func main() {
  jsonData := []byte(`{"key": "value"}`)
  res := http.DetectContentType(jsonData)
  fmt.Println(res)
}

Результат выполнения кода:

go"application/json"

Пример

Давайте определим MIME-тип для HTML-данных:

gopackage main

import (
  "fmt"
  "net/http"
)

func main() {
  htmlData := []byte("<html><body>Hello</body></html>")
  res := http.DetectContentType(htmlData)
  fmt.Println(res)
}

Результат выполнения кода:

go"text/html; charset=utf-8"

Пример

Давайте определим MIME-тип для бинарных данных, где тип не удается распознать:

gopackage main

import (
  "fmt"
  "net/http"
)

func main() {
  binaryData := []byte{0x00, 0x01, 0x02, 0x03}
  res := http.DetectContentType(binaryData)
  fmt.Println(res)
}

Результат выполнения кода:

go"application/octet-stream"

Смотрите также

  • функцию http.DetectContentType,
    которая определяет MIME-тип данных
  • функцию http.ParseHTTPVersion,
    которая разбирает строку версии HTTP
  • функцию http.CanonicalHeaderKey,
    которая приводит заголовок к каноническому виду
  • функцию http.ServeContent,
    которая отправляет содержимое файла в ответ