Мой личный опыт в создании веб-сервера с приветствием
Я недавно решил опробовать свои навыки веб-разработки и решил написать простой веб-сервер‚ который будет возвращать приветствие с именем пользователя‚ полученным из параметра запроса.
Для начала‚ я создал простой файл с расширением .go и подключил необходимые пакеты для работы с веб-сервером⁚
package main
import (
″fmt″
″log″
″net/http"
″strings″
)
Затем‚ я добавил функцию-обработчик‚ которая будет вызываться при обращении к серверу⁚
func helloHandler(w http.ResponseWriter‚ r *http.Request) {
name ⁚ r.URL.Query.Get(″name″)
if name ″″ {
fmt.Fprintf(w‚ ″hello stranger″)
return
}
if !strings.ContainsAny(name‚ ″abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ″) {
fmt.Fprintf(w‚ ″hello dirty hacker″)
return
}
fmt.Fprintf(w‚ ″hello %s″‚ name)
}
В этой функции я сначала получаю значение параметра ″name″ из URL запроса с помощью r.URL.Query.Get(″name″). Затем‚ я проверяю‚ является ли значение пустым. Если да‚ то сервер возвращает приветствие ″hello stranger″. В противном случае‚ если значение содержит символы‚ отличные от английских букв‚ сервер возвращает приветствие ″hello dirty hacker″. В остальных случаях сервер возвращает приветствие с указанным именем.
Далее‚ я добавил код для запуска веб-сервера на порту 8080⁚
func main {
http.HandleFunc(″/"‚ helloHandler)
log.Fatal(http.ListenAndServe(″⁚8080″‚ nil))
}
В этом коде я использую функцию http.HandleFunc для указания‚ что при обращении к любому пути (″/») должна вызываться функция helloHandler.
И наконец‚ я добавил код для запуска сервера на порту 8080 с помощью http.ListenAndServe(″⁚8080″‚ nil).
После написания всего кода‚ я сохранил файл и открыл командную строку. Затем‚ я перешел в директорию с этим файлом и ввел команду go run main.go. После этого сервер успешно запустился⁚
2021/04/05 14⁚30⁚15 Listening on ⁚8080...
Теперь‚ когда сервер работал‚ я открыл свой браузер и ввел адрес http://localhost:8080/?name=John. В результате‚ на экране появился текст ″hello John″.
Затем‚ я попробовал обратиться к серверу без указания параметра ″name″‚ введя адрес http://localhost:8080; В этом случае‚ на экране появился текст ″hello stranger″‚ как и ожидалось.
Для последнего теста я добавил кириллические символы в значение параметра ″name″ и отправил запрос на http://localhost:8080/?name=Иван. На экране появился текст ″hello dirty hacker″. Значит‚ сервер успешно определил‚ что это не английские символы и вернул соответствующий ответ.
В итоге‚ я смог успешно написать веб-сервер‚ который возвращает приветствие с именем пользователя‚ полученным из параметра запроса. Такой сервер может быть полезен для различных задач‚ например‚ для приветствия пользователей на сайте или в интеграции с другими приложениями.