РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1002 of 1593 menu

Функция http.Head

Функция http.Head выполняет HTTP HEAD-запрос к указанному URL. В отличие от GET-запроса, HEAD возвращает только заголовки ответа без тела. Это полезно, когда нужно проверить доступность ресурса, получить размер файла или тип содержимого без загрузки всего тела. Первым параметром функция принимает строку с URL-адресом, вторым параметром - указатель на структуру http.Client (может быть nil, тогда используется клиент по умолчанию).

Синтаксис

http.Head(url string) (*http.Response, error)

Пример

Давайте выполним HEAD-запрос к тестовому серверу и выведем полученные заголовки:

package main import ( "fmt" "net/http" ) func main() { res, err := http.Head("https://example.com") if err != nil { fmt.Println(err) return } defer res.Body.Close() fmt.Println("Status:", res.Status) fmt.Println("Content-Length:", res.ContentLength) fmt.Println("Content-Type:", res.Header.Get("Content-Type")) }

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

"Status: 200 OK" "Content-Length: 1256" "Content-Type: text/html; charset=UTF-8"

Пример

Проверим, существует ли файл на сервере, запросив только заголовки:

package main import ( "fmt" "net/http" ) func main() { res, err := http.Head("https://example.com/files/document.pdf") if err != nil { fmt.Println("Error:", err) return } defer res.Body.Close() if res.StatusCode == http.StatusOK { fmt.Println("File exists") } else { fmt.Println("File not found") } }

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

"File not found"

Пример

Используем HEAD-запрос с кастомным клиентом для проверки размера файла:

package main import ( "fmt" "net/http" "time" ) func main() { client := &http.Client{ Timeout: 5 * time.Second, } res, err := client.Head("https://example.com/image.jpg") if err != nil { fmt.Println(err) return } defer res.Body.Close() if res.StatusCode == http.StatusOK { fmt.Printf("File size: %d bytes\n", res.ContentLength) } }

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

"File size: 2048576 bytes"

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

  • функцию http.Get,
    которая выполняет GET-запрос с получением тела ответа
  • функцию http.Post,
    которая выполняет POST-запрос с отправкой данных
  • функцию http.PostForm,
    которая выполняет POST-запрос с данными формы
  • функцию http.Client.Head,
    которая выполняет HEAD-запрос с кастомным клиентом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить