15줄로 Golang HTTP 서버 만들기

2802 단어 gohttpbeginners
Golang은 대규모 웹 서비스를 만들고 유지하기 위한 업계 표준이 되었습니다. HTTP 서버를 생성하기 위한 내장 패키지net/http가 있습니다. 이 패키지는 서버 생성의 장벽을 줄여줍니다.

이 게시물은 최소한의 코드로 golang에서 첫 번째 HTTP 서버를 시작하고 실행하는 데 도움이 될 것입니다.

This tutorial assumes that you have golang installed and setup ready with you. If don't have one you can refer here



핸들러 생성


net/http에서 가장 중요한 개념 중 하나는 핸들러입니다. 핸들러는 http.Handler 인터페이스를 구현하는 함수일 뿐입니다. 요청 시 작업을 처리하고 적절한 응답을 반환하는 단위로 상상할 수 있습니다. 어떻게 생겼는지 보여드리겠습니다.

type Handler interface {
    ServeHTTP(ResponseWriter, *Request)
}


따라서 HTTP 핸들러를 작성하기 위해 golang의 핸들러 인터페이스를 구현합니다.

func index(w http.ResponseWriter, r *http.Request) {
    io.WriteString(w, "welcome to golang world!")
}


위의 예에서 핸들러 함수는 http.ResponseWriterhttp.Request 를 취하는 것을 볼 수 있습니다. http.Request는 헤더, 본문 등과 같은 요청 내용을 나타냅니다. http.ResponseWriter는 서버의 응답을 다시 쓰는 데 사용됩니다.

라우터 등록 및 서버 시작



Golang에는 경로를 등록하는 데 사용할 수 있는 HandlerFunc가 있습니다. 이 경로를 기본 라우터net/http 패키지에 등록합니다. 원하는 경우 고유한 라우터를 만들 수 있습니다. 라우트 경로와 핸들러 함수(방금 위에서 작성한)를 취합니다.

이제 마지막으로 http.ListenAndServe를 사용하여 HTTP 서버를 제공합니다. 첫 번째 인수는 수신하는 주소이고:8080 전달하므로 localhost:8080에서 수신 대기하고 두 번째 인수는 라우터를 사용합니다. 이 경우 라우터는 nil에 경로를 마운트했기 때문입니다. 기본 라우터. 원하는 경우 사용자 지정 라우터를 전달할 수 있습니다.

func main() {
    http.HandleFunc("/", index)
    print("Starting Server at port :8080")
    log.Fatal(http.ListenAndServe(":8080", nil))
}


전체 코드는 다음과 같습니다.

package main

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

func index(w http.ResponseWriter, r *http.Request) {
    io.WriteString(w, "welcome to golang world!")
}

func main() {
    http.HandleFunc("/", index)
    print("Starting Server at port :8080")
    log.Fatal(http.ListenAndServe(":8080", nil))
}


이제 서버를 실행하고 끝점에 도달하여 출력을 확인합니다.

$ go run main.go
Starting Server at port :8080

$ curl localhost:8080/
welcome to golang world!


결론



Golang은 현대적인 웹 서비스를 제공하는 훌륭한 언어입니다. Http 서버를 실행하기에 충분한 빌딩 블록을 제공합니다. Golang의 가장 좋은 점 중 하나는 이러한 언어 블록을 사용하여 간단한 솔루션을 구축할 수 있다는 것입니다.

이 게시물을 읽은 경우 아래 의견 상자에 제안 사항을 추가하여 개선할 수 있도록 도와주세요. 앞으로의 포스팅을 위해 여기와 트위터를 팔로우 해주세요..

좋은 웹페이지 즐겨찾기