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

Функция http.Redirect

Функция http.Redirect выполняет перенаправление клиента на новый URL-адрес. Она отправляет HTTP-ответ с указанным кодом статуса и заголовком Location, содержащим новый адрес. Первым параметром функция принимает http.ResponseWriter для записи ответа, вторым - указатель на http.Request для получения информации о текущем запросе, третьим - строку с URL-адресом для перенаправления, и четвертым - целочисленный код статуса HTTP-редиректа.

Синтаксис

http.Redirect(w http.ResponseWriter, r *http.Request, url string, code int)

Пример

Давайте выполним простое перенаправление с кодом 301:

package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/old", func(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/new", http.StatusMovedPermanently) }) http.HandleFunc("/new", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "New page") }) http.ListenAndServe(":8080", nil) }

При обращении к /old клиент будет перенаправлен на /new с кодом 301 Moved Permanently.

Пример

Давайте выполним временное перенаправление с кодом 302:

package main import ( "net/http" ) func main() { http.HandleFunc("/temp", func(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "https://example.com", http.StatusFound) }) http.ListenAndServe(":8080", nil) }

В этом примере запрос на /temp будет перенаправлен на внешний сайт с кодом 302 Found.

Пример

Давайте перенаправим пользователя после обработки формы:

package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/submit", func(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { // Обработка данных формы http.Redirect(w, r, "/success", http.StatusSeeOther) return } fmt.Fprintln(w, "Submit form") }) http.HandleFunc("/success", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Form submitted successfully") }) http.ListenAndServe(":8080", nil) }

При POST-запросе на /submit сервер перенаправит пользователя на /success с кодом 303 See Other.

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

  • функцию http.Error,
    которая отправляет HTTP-ошибку с указанным статусом
  • функцию http.ServeFile,
    которая отдает файл как HTTP-ответ
  • функцию http.NotFound,
    которая отправляет HTTP-ответ с кодом 404
  • структуру http.ServeMux,
    которая используется для маршрутизации HTTP-запросов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить