Как создать базовый веб-сервер с помощью Go

Как создать базовый веб-сервер с помощью Go

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

Более того, обширная коллекция встроенных пакетов Go делает его отличным выбором для веб-программирования. Эта статья покажет вам, как написать базовый веб-сервер на Go.

Импортируйте необходимые пакеты

Пакет net/HTTP предоставляет все необходимое для создания веб-сервера и клиента. В этом пакете представлены некоторые полезные функции для веб-программирования.

Вы можете импортировать его, добавив строку ниже в начало исходного кода:

import "net/http"

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

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

Приступить к написанию основной функции можно после импорта необходимых пакетов. Идем дальше и сохраняем исходный файл с расширением .go . Если вы используете Vim , используйте команду ниже, чтобы сохранить и выйти из Vim:

:wq server.go

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

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

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

В примере определяется основная функция с использованием ключевого слова func . В Go действуют строгие правила относительно положения открывающей скобки, поэтому убедитесь, что открывающая скобка находится на правильной строке. Первый оператор в main определяет, что все веб-запросы к корневому пути ( «/» ) будут обрабатываться индексом, функцией типа http.HandlerFunc .

Вторая строка запускает веб-сервер через функцию http.ListenAndServe . Он сигнализирует серверу о необходимости непрерывного прослушивания входящих HTTP-запросов на порту 8080 сервера. Второй параметр этой функции нужен для блокировки программы до конца.

Поскольку http.ListenAndServe всегда возвращает ошибку, в примере этот вызов обертывается внутри вызова log.Fatal . Этот оператор регистрирует любые сообщения об ошибках, сгенерированные на стороне сервера.

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

Как видите, основная функция вызывает функцию-обработчик index для обработки клиентских запросов. Однако в примере еще не определена эта функциональность для своего сервера.

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

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 как исполняемый файл.


Более 70+ обоев высокого разрешения «Мститель: Война бесконечности» для компьютеров и ноутбуков

Более 70+ обоев высокого разрешения «Мститель: Война бесконечности» для компьютеров и ноутбуков

Это набор из более чем 70 обоев с разными разрешениями в Avenger: Infinity War.

Как выбрать графический процессор для каждого приложения в Windows 10

Как выбрать графический процессор для каждого приложения в Windows 10

Windows 10 теперь позволяет пользователям выбирать графический процессор для игры или других приложений в приложении «Настройки». Раньше вам приходилось использовать специальный инструмент производителя, такой как Панель управления NVIDIA или Центр управления AMD Catalyst, чтобы назначить графические процессоры каждому отдельному приложению.

4 способа запуска ПО с правами администратора в Windows

4 способа запуска ПО с правами администратора в Windows

Ниже представлены 4 способа запуска приложений с правами администратора в Windows.

Почему IP-адрес Localhost — 127.0.0.1?

Почему IP-адрес Localhost — 127.0.0.1?

127 — это последний номер сети в сети класса A с маской подсети 255.0.0.0. Адрес 127.0.0.1 — это первый адрес назначения в подсети. Адрес 127.0.0.0 не используется, поскольку это адрес проводной сети.

Как удалить старые неиспользуемые драйверы в Windows 10

Как удалить старые неиспользуемые драйверы в Windows 10

Центр обновления Windows автоматически загружает и устанавливает драйверы оборудования, если они доступны. А когда Windows 10 устанавливает новые драйверы, система сохраняет установочные пакеты драйверов предыдущей версии, чтобы пользователи могли использовать их для восстановления старых версий драйверов в случае возникновения проблем с настройкой нового драйвера.

10 команд PowerShell помогут наиболее эффективно управлять удаленными компьютерами

10 команд PowerShell помогут наиболее эффективно управлять удаленными компьютерами

Windows PowerShell — это исполнительная система командной строки и язык сценариев, которые можно использовать для управления вашей системой. В статье ниже LuckyTemplates познакомит вас с 10 командами PowerShell для эффективного удаленного управления вашим компьютером.

Как удалить маленькие значки, которые появляются в строке поиска Windows 10

Как удалить маленькие значки, которые появляются в строке поиска Windows 10

Если вы дотошны и внимательны к деталям, возможно, вы заметили небольшой значок, который меняется в зависимости от даты/темы, появляющейся в поле поиска на панели задач Windows 10.

Как использовать тему в Windows 10

Как использовать тему в Windows 10

Тема в Windows — это группа настроек, цветов, звуков и подобных параметров конфигурации, которые определяют внешний вид пользовательского интерфейса. Тема используется для персонализации компьютерной среды и удобства использования.

Обои Овен и Овен для компьютера

Обои Овен и Овен для компьютера

LuckyTemplates отправит вам самые красивые обои для использования. Для справки приведенные ниже обои Овна были уменьшены в размере.

Отключите или удалите расширение браузера Edge в Windows 10.

Отключите или удалите расширение браузера Edge в Windows 10.

Однако если вы установите и разрешите слишком много расширений в браузере Edge, это замедлит работу вашего веб-браузера. Поэтому, если вы хотите повысить скорость браузера Edge, вам следует удалить расширения, которые вы больше не используете или используете редко.