Константа http.StatusNotFound
Константа http.StatusNotFound представляет
HTTP статус-код 404 Not Found. Она используется
для указания, что запрошенный ресурс не существует
на сервере. Это одна из наиболее часто используемых
констант в пакете net/http при обработке
HTTP запросов и формировании ответов.
Синтаксис
http.StatusNotFound
Константа возвращает целочисленное значение типа
int, равное 404.
Пример использования с http.Error
Давайте рассмотрим пример использования константы
с функцией http.Error для отправки ответа
404 клиенту:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/" {
http.Error(w, "Page not found", http.StatusNotFound)
return
}
fmt.Fprintln(w, "Welcome to the main page")
})
http.ListenAndServe(":8080", nil)
}
В этом примере обработчик проверяет путь запроса.
Если путь не равен корневому, функция http.Error
отправляет статус 404 и сообщение "Page not found"
с использованием константы http.StatusNotFound.
Пример с http.NotFound
Также константа используется внутри функции
http.NotFound, которая является сокращенным
способом отправки ответа 404:
package main
import (
"net/http"
)
func main() {
http.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodGet {
http.NotFound(w, r)
return
}
})
http.ListenAndServe(":8080", nil)
}
В этом примере обработчик проверяет метод запроса.
Если метод не GET, вызывается функция http.NotFound,
которая внутри использует константу http.StatusNotFound
для формирования ответа.
Пример проверки статуса в ответе
Константа может использоваться для проверки статуса ответа, полученного от сервера:
package main
import (
"fmt"
"net/http"
)
func main() {
res, err := http.Get("https://example.com/notfound")
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
if res.StatusCode == http.StatusNotFound {
fmt.Println("Resource not found")
} else {
fmt.Printf("Status: %d\n", res.StatusCode)
}
}
Результат выполнения кода:
"Resource not found"
В этом примере мы выполняем GET запрос и проверяем статус ответа. Если код равен 404, выводим соответствующее сообщение.
Смотрите также
-
константу
http.StatusOK,
которая представляет код 200 OK -
константу
http.StatusInternalServerError,
которая представляет код 500 Internal Server Error -
функцию
http.NotFound,
которая отправляет ответ с кодом 404 -
функцию
http.Error,
которая позволяет отправить произвольный код состояния