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

Функция http.NotFound

Функция http.NotFound отправляет клиенту HTTP-ответ с кодом состояния 404 Not Found и текстовым сообщением "404 page not found". Первым параметром функция принимает интерфейс http.ResponseWriter, через который отправляется ответ. Вторым параметром принимает указатель на структуру http.Request, представляющую входящий запрос от клиента.

Синтаксис

http.NotFound(w http.ResponseWriter, r *http.Request)

Пример

Давайте создадим HTTP-сервер, который обрабатывает запросы к корневому пути и возвращает ошибку 404:

package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { http.NotFound(w, r) }) err := http.ListenAndServe(":8080", nil) if err != nil { fmt.Println("Server error:", err) } }

Если выполнить запрос к серверу через браузер или curl, результатом будет:

"404 page not found"

Пример

Давайте создадим обработчик с несколькими маршрутами, где для несуществующих путей будет возвращаться ошибка 404:

package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { if r.URL.Path == "/" { fmt.Fprintf(w, "Welcome to home page") } else { http.NotFound(w, r) } }) err := http.ListenAndServe(":8080", nil) if err != nil { fmt.Println("Server error:", err) } }

Результат выполнения запроса к несуществующему пути:

"404 page not found"

Пример

Давайте используем функцию http.NotFound внутри условной логики для обработки различных типов запросов:

package main import ( "fmt" "net/http" ) func handleRequest(w http.ResponseWriter, r *http.Request) { switch r.Method { case "GET": fmt.Fprintf(w, "GET request received") case "POST": fmt.Fprintf(w, "POST request received") default: http.NotFound(w, r) } } func main() { http.HandleFunc("/", handleRequest) err := http.ListenAndServe(":8080", nil) if err != nil { fmt.Println("Server error:", err) } }

Результат выполнения запроса с неподдерживаемым методом:

"404 page not found"

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

  • функцию http.Error,
    которая отправляет произвольный код состояния с сообщением
  • функцию http.Redirect,
    которая выполняет перенаправление клиента на другой URL
  • функцию http.ServeFile,
    которая отдает содержимое файла в ответ на запрос
  • константу http.StatusNotFound,
    которая содержит числовой код состояния 404
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить