Як створити базовий веб-сервер за допомогою Go

Як створити базовий веб-сервер за допомогою Go

Go — цікава мова програмування для створення сучасних веб-додатків, а також системного програмного забезпечення. Він викликав величезний резонанс після випуску та підтримує такі служби, як Docker, Kubernetes, Terraform, Dropbox і Netflix .

Крім того, надійна колекція вбудованих пакетів Go робить його чудовим вибором для веб-програмування. Ця стаття покаже вам, як написати базовий веб-сервер у Go.

Імпортуйте необхідні пакети

Пакет net/HTTP містить усе необхідне для створення веб-сервера та клієнта. Цей пакет містить деякі корисні функції для обробки веб-програмування.

Ви можете імпортувати його, додавши рядок нижче на початок вихідного коду:

import "net/http"

У статті також використовуватиметься пакет fmt для форматування рядків і пакет log для обробки помилок. Ви можете імпортувати їх окремо, як показано вище, або імпортувати всі пакети за допомогою одного оператора імпорту:

import (
"fmt"
"log"
"net/http"
)

Ви можете продовжити написання функції main після імпорту необхідних пакетів. Збережіть вихідний файл із розширенням .go . Якщо ви використовуєте Vim , скористайтеся командою нижче, щоб зберегти та вийти з Vim:

:wq server.go

Напишіть основну функцію

Програми Go знаходяться безпосередньо в основній функції, влучно названій «main». Тут вам потрібно буде зателефонувати на сервер . Додайте наступні рядки до вихідного коду та подивіться, що вони роблять:

func main() {
http.HandleFunc("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}

У прикладі визначення функції main за допомогою ключового слова func . Go має суворі правила щодо розміщення початкової дужки, тому переконайтеся, що початкова дужка розташована на правильній лінії. Перший оператор у main визначає, що всі веб-запити до кореневого шляху ( "/" ) оброблятимуться функцією index типу http.HandlerFunc .

Другий рядок запускає веб-сервер за допомогою функції http.ListenAndServe . Він сигналізує серверу постійно прослуховувати вхідні HTTP-запити на порт 8080 сервера. Другий параметр цієї функції потрібен для блокування програми до кінця.

Оскільки http.ListenAndServe завжди повертає помилку, приклад загортає цей виклик у log.Fatal call . Цей оператор реєструє будь-які повідомлення про помилки, створені на стороні сервера.

Реалізація функцій обробки

Як бачите, основна функція викликає індекс функції обробника для обробки запитів клієнта. Однак приклад ще не визначив цю функціональність для свого сервера.

Давайте додамо необхідні оператори, щоб зробити функцію індексу придатною для використання:

func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:])
}

Ця функція приймає два різні аргументи типу http.ResponseWriter і http.Request . Параметр http.ResponseWriter містить відповідь сервера на вхідний запит у формі об’єкта http.Request .

Функція Fprintf з пакету fmt використовується для відображення та обробки текстових рядків. Стаття використовує це для відображення відповіді сервера на веб-запити. Нарешті, елемент r.URL.Path[1:] використовується для отримання даних після кореневого шляху.

Додайте всі частини, що залишилися

Ваш веб-сервер Go буде готовий, коли ви додасте всі інші компоненти. Код буде виглядати так:

import (
"fmt"
"log"
"net/http"
)
func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}

Перший рядок потрібен для компіляції цього коду веб-сервера Go як виконуваного файлу.

Як створити базовий веб-сервер за допомогою Go

Скомпілюйте цей код веб-сервера Go як виконуваний файл


Дізнайтеся про брандмауери, брандмауер Windows у Windows Server 2012

Дізнайтеся про брандмауери, брандмауер Windows у Windows Server 2012

Брандмауер Windows із розширеною безпекою — це брандмауер, який працює на Windows Server 2012 і ввімкнено за замовчуванням. Параметрами брандмауера в Windows Server 2012 можна керувати в консолі Microsoft Management Console брандмауера Windows.

Як змінити пароль для входу на модем і маршрутизатор Vigor Draytek

Як змінити пароль для входу на модем і маршрутизатор Vigor Draytek

Під час зміни пароля адміністратора сторінки входу модема та маршрутизатора Vigor Draytek користувачі обмежать несанкціонований доступ до зміни пароля модему, захищаючи важливу мережеву інформацію.

Як легко розігнати оперативну пам’ять за допомогою AMD Ryzen Master

Як легко розігнати оперативну пам’ять за допомогою AMD Ryzen Master

На щастя, користувачі комп’ютерів Windows із процесорами AMD Ryzen можуть використовувати Ryzen Master для легкого розгону оперативної пам’яті, не торкаючись BIOS.

7 способів виправити помилки ноутбука Windows, який не заряджається через USB-C

7 способів виправити помилки ноутбука Windows, який не заряджається через USB-C

Порт USB-C став стандартом для передачі даних, виведення відео та заряджання на сучасних ноутбуках Windows. Хоча це зручно, може бути неприємно, коли ви підключаєте свій ноутбук до зарядного пристрою USB-C, а він не заряджається.

Як виправити помилку Cannot Create Service в Ultraviewer

Як виправити помилку Cannot Create Service в Ultraviewer

Помилка «Неможливо створити службу» в Ultraviewer виникає, коли ми встановлюємо програмне забезпечення з кодом помилки 1072.

Як виправити помилку невідображення ідентифікатора в Ultraviewer

Як виправити помилку невідображення ідентифікатора в Ultraviewer

Помилка невідображення ідентифікатора в Ultraviewer вплине на підключення до віддаленого комп’ютера.

Як використовувати Ultraviewer для надсилання та отримання файлів

Як використовувати Ultraviewer для надсилання та отримання файлів

Ultraviewer дистанційно керує комп'ютером і має режим надсилання та отримання файлів.

Що таке Packet Sniffer?

Що таке Packet Sniffer?

Хакери можуть використовувати Sniffer для підслуховування незашифрованих даних і перегляду інформації, якою обмінюються дві сторони. Щоб краще зрозуміти Packet Sniffer, а також механізм дії Packet Sniffer, ви можете переглянути статтю Wiki.SpaceDesktop нижче.

6 способів остаточно видалити файли в Windows

6 способів остаточно видалити файли в Windows

Зазвичай, видаляючи файл у Windows, файл не видаляється відразу, а зберігається в кошику. Після цього вам доведеться зробити ще один крок: очистити кошик. Але якщо ви не хочете виконувати цей другий крок, ми покажемо вам, як остаточно видалити файл у статті нижче.

Як темна мережа впливає на безпеку?

Як темна мережа впливає на безпеку?

Темна мережа — це таємниче місце з видатною репутацією. Знайти темну мережу не складно. Однак навчитися безпечно керувати ним – це інша справа, особливо якщо ви не знаєте, що робите чи чого очікувати.