Go(golang) http로 'Hello World!'만들기

 안녕하세요. 알렉스 입니다. 이번에 Go언어를 배우면서 블로그를 정리하게 되었습니다. 


package main

import (
"fmt"
"net/http"
)

func main(){
// HandleFunc : 해당 요청을 받고 응답을 합니다.
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){

// w는 client에 대한 응답내용 이다.
// r은 client의 요청사항 이다.

n, err := fmt.Fprintf(w, "Hello World!")

// 에러 체크
if err != nil {
fmt.Println(err)
}

// 응답(w)한 바이트의 크기를 출력한다.
fmt.Println(fmt.Sprintf("Number of bytes written: %d", n))

})

// 서버를 열기전 콘솔에 열리는 포트 정보 표시하기
fmt.Println("Open PORT : 8080")

// 해당 서버의 8080포트로 Listing한다.
err := http.ListenAndServe(":8080", nil)
// 에러가 있으면 출력한다.
fmt.Println("Error", err)
}


위와 같이 간단한 main.go 파일을 작성합니다. 해당 코드를 실행하면 local서버에서 8080포트로 GET요청을 하면 "Hello World!"의 텍스트를 볼수 있습니다.


사진1) local로 Hello World! 출력

그리고 터미널을 확인하면 아래와 같이 출력이 됩니다. 


사진2) Get요청 후 출력된 터미널

해당 터미널에서 2번 찍힌 이유는 HTTP가 기본적으로 처음에 PreRequest을 보내고 다음에 MainRequest를 보내기 때문입니다. PreRequest는 CORS의 적합성을 확인하기 위한 과정입니다.


이후 MainRequest에서 서버는 클라이언트에 "Hello World!"텍스트를 보내게 됩니다.

23번째 줄에서 "Number of bytes written"은 해당 string의 크기를 bytes로 표시한 것입니다. 띄어쓰기까지 포함해서 총 12글자이기 때문에 12가 출력된 것입니다.





댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Lesson 12_2 참조를 이용한 프로퍼티노드(Property Node)