[go] net/http 패키지를 사용한 요청과 응답 바디 다루기

목차

  1. net/http 패키지 소개
  2. HTTP 클라이언트로 요청 보내기
  3. HTTP 서버로 응답 보내기
  4. 요청과 응답 바디 다루기
  5. 결론

1. net/http 패키지 소개

net/http 패키지는 Go 언어에서 HTTP 클라이언트 및 서버를 작성하는 데 사용됩니다. 이 패키지를 활용하여 HTTP 요청을 보내거나 HTTP 서버로부터 응답을 받아올 수 있습니다.

2. HTTP 클라이언트로 요청 보내기

아래는 HTTP GET 요청을 보내고, 응답을 받아오는 예제 코드입니다.

package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func main() {
	resp, err := http.Get("https://api.example.com/data")
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}

	fmt.Println(string(body))
}

3. HTTP 서버로 응답 보내기

아래는 간단한 HTTP 서버를 구성하고 응답을 보내는 예제 코드입니다.

package main

import (
	"fmt"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprint(w, "Hello, World!")
}

func main() {
	http.HandleFunc("/", handler)
	http.ListenAndServe(":8080", nil)
}

4. 요청과 응답 바디 다루기

HTTP 요청이나 응답의 바디를 다룰 때에는 해당 데이터를 []byte로 읽어오거나 스트림으로 처리합니다. 복잡한 JSON 데이터나 파일 업로드 등과 같이 다양한 형태의 데이터를 다룰 수 있습니다.

5. 결론

net/http 패키지를 사용해 HTTP 클라이언트 및 서버를 작성하는 방법을 살펴보았습니다. 요청과 응답의 바디를 다루는 방법을 숙지하고, 효율적인 네트워크 프로그래밍을 할 수 있도록 더 많은 공부를 하시기 바랍니다.


이 글은 Go 공식 문서A Tour of Go 등을 참고하여 작성되었습니다.