32 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: A simple web server in Go
 | ||
| localeTitle: Простой веб-сервер в Go
 | ||
| ---
 | ||
| Язык программирования Go хорошо известен тем, что имеет встроенный веб-сервер. В этой статье вы узнаете, как вы можете легко сделать свой собственный веб-сервер с Go. Вам не понадобятся другие пакеты рядом с теми, которые уже встроены!
 | ||
| 
 | ||
| Сначала перейдите в свой текстовый редактор. Затем создайте файл с именем `webserver.go` и введите следующий код:
 | ||
| 
 | ||
| ```go
 | ||
| package main 
 | ||
|  
 | ||
|  import ( 
 | ||
|   "net/http" 
 | ||
|   "io" 
 | ||
|  ) 
 | ||
|  
 | ||
|  func main() { 
 | ||
|   http.HandleFunc("/", servePage) 
 | ||
|     http.ListenAndServe(":8080", nil) 
 | ||
|  } 
 | ||
|  
 | ||
|  func servePage(writer http.ResponseWriter, reqest *http.Request) { 
 | ||
|   io.WriteString(writer, "Hello world!") 
 | ||
|  } 
 | ||
| ```
 | ||
| 
 | ||
| Давайте разложим блок кода выше. Мы импортируем пакет `net/http` : этот пакет содержит сам веб-сервер. Затем мы также импортируем пакет `io` , мы воспользуемся этим позже, чтобы фактически что-то предложить клиенту.
 | ||
| 
 | ||
| В `main` функции мы делаем две вещи. Прежде всего, мы `servePage` серверу разрешить функции, называемой `servePage` обрабатывать весь входящий трафик в `/` -, в этом случае это означает, что он обрабатывает запросы по _любому_ `URL` . Во-вторых, мы фактически активируем сервер. Мы делаем это с помощью функции `ListenAndServe` . Для этой функции требуются два параметра: `port` (как `string` ), в этом случае это `8080` , а `handler` (как `Handler` ) - однако последний еще не важен. Мы просто сделаем это `nil` и все будет работать нормально.
 | ||
| 
 | ||
| В `servePage` мы делаем только одну простую вещь, пока. Используя пакет `io` и функцию `WriteString` которую он содержит, мы можем ответить на запрос клиентов текстом `Hello world!` (или любой другой строки, конечно). Вы также могли заметить , что `servePage` функция имеет два аргумента: `writer` и `request` . С автором вы можете ответить на `HTTP` запрос, и с `request` вы можете получить больше информации о самом запросе.
 | ||
| 
 | ||
| Поздравляем! Вы только что создали свой первый веб-сервер! Если вы хотите протестировать его: просто запустите `go run webserver.go` , запустите браузер и перейдите по `http://localhost:8080` ! |