И так . Для начала разберем , что такое http и как он работает .
HTTP — сетевой протокол прикладного уровня, который изначально предназначался для получения с серверов гипертекстовых документов в формате HTML, а с течением времени стал универсальным средством взаимодействия между узлами как Всемирной паутины, так и изолированных веб-инфраструктур.

Какие http запросы бывают ?
1. GET - используется для получения данных с сервера.
2. POST - используется для отправки данных на сервер.
3. PUT - используется для обновления данных на сервере.
4. DELETE - используется для удаления данных на сервере.
5. HEAD - используется для получения только заголовков ответа, без тела.
6. OPTIONS - используется для получения информации о доступных методах HTTP для данного ресурса.
Приступим к написанию . Можно использовать стандартную библиотеку Golang - net/http , но я буду использовать полноценный фреймворк Fiber .
Создадим модуль и скачаем fiber
Откроем main.go в любом удобном редакторе кода или в IDE
Этот пример показывает как создать приложение и создать обработчик главной страницы .
Но мы же не будем каждый раз отправлять только текст , нам надо будет подгружать html страницы .
Для этого создадим views/index.html
А в main.go
В get запросы можно передавать и параметры .
Для этого в main.go создадим ещё один обработчик страницы , я буду использовать user .
Пойдем дальше и научимся работать с Post запросами .
HTTP — сетевой протокол прикладного уровня, который изначально предназначался для получения с серверов гипертекстовых документов в формате HTML, а с течением времени стал универсальным средством взаимодействия между узлами как Всемирной паутины, так и изолированных веб-инфраструктур.

Какие http запросы бывают ?
1. GET - используется для получения данных с сервера.
2. POST - используется для отправки данных на сервер.
3. PUT - используется для обновления данных на сервере.
4. DELETE - используется для удаления данных на сервере.
5. HEAD - используется для получения только заголовков ответа, без тела.
6. OPTIONS - используется для получения информации о доступных методах HTTP для данного ресурса.
Приступим к написанию . Можно использовать стандартную библиотеку Golang - net/http , но я буду использовать полноценный фреймворк Fiber .
Создадим модуль и скачаем fiber
go mod init fiberapp
go get github.com/gofiber/fiber
/v2
go mod tidy
Откроем main.go в любом удобном редакторе кода или в IDE
Код:
package main
import (
"github.com/gofiber/fiber/v2"
)
func main() {
app := fiber.New() // создадим новое приложение
// Обработчик главной страницы
app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("Hello, World!")
})
app.Listen(":3000") // порт на котором будет приложение
}
Но мы же не будем каждый раз отправлять только текст , нам надо будет подгружать html страницы .
Для этого создадим views/index.html
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Title}}</title>
</head>
<body>
<h1>{{.Message}}</h1>
</body>
</html>
Код:
package main
import (
"github.com/gofiber/fiber/v2"
"html/template"
"os"
)
func main() {
app := fiber.New()
// Настройка шаблонизатора
app.Settings.Views = template.Must(template.ParseGlob("views/*.html"))
// Обработка GET запроса для главной страницы
app.Get("/", func(c *fiber.Ctx) error {
return c.Render("index", fiber.Map{
"Title": "Index Page",
"Message": "Hello World!",
})
})
app.Listen(":3000")
}
Для этого в main.go создадим ещё один обработчик страницы , я буду использовать user .
Код:
app.Get("/user/:name", func(c *fiber.Ctx) error {
name := c.Params("name") // Извлечение параметра name из url
return c.SendString("User Name: " + name)
})
Пойдем дальше и научимся работать с Post запросами .
Код:
package main
import (
"github.com/gofiber/fiber/v2"
)
func main() {
app := fiber.New()
app.Get("/", func(c *fiber.Ctx) error {
// Лучше так не делать , а использовать подгрузку html шаблона
return c.SendString(`
<form action="/submit" method="POST">
<input type="text" name="name" placeholder="Введите свой пароль " required>
<input type="email" name="email" placeholder="Введите свою почту" required>
<button type="submit">Submit</button>
</form>
`)
})
app.Post("/submit", func(c *fiber.Ctx) error {
name := c.FormValue("name") // Извлечение значения поля имени
email := c.FormValue("email") // Извлечение значения поля почты
// Установка куки
c.Cookie(&fiber.Cookie{
Name: "name",
Value: name,
Path: "/",
MaxAge: 3600, // Время жизни куки в секундах
})
return c.SendString("Name: " + name + ", Email: " + email)
})
app.Listen(":3000")
}
Последнее редактирование: