15줄로 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.ResponseWriter
및 http.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의 가장 좋은 점 중 하나는 이러한 언어 블록을 사용하여 간단한 솔루션을 구축할 수 있다는 것입니다.
이 게시물을 읽은 경우 아래 의견 상자에 제안 사항을 추가하여 개선할 수 있도록 도와주세요. 앞으로의 포스팅을 위해 여기와 트위터를 팔로우 해주세요..
Reference
이 문제에 관하여(15줄로 Golang HTTP 서버 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/umesh/create-golang-http-server-in-15-lines-43fp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)