728x90
net/http
http 패키지부터 한번 사용해보겠습니다.
package main
import (
"fmt"
"net/http"
)
func main() {
fmt.Print("Hello")
http.ListenAndServe("localhost:8080", nil)
}
실행해봤습니다. 요청이 들어오고 서버가 응답한것을 확인할수 있습니다. (404)
공식문서(링크)를 한번 봐봅니다. http 패키지가 있고 설명이 있습니다.
그리고 vs code에서 ctrl + 클릭해서 ListenAndServe 를 자세히 봐봅니다.
주소 스트링과, 핸들러를 받습니다. 핸들러가 뭔지 확인해보기위해
핸들러를 또 ctrl + 클릭해보면 Handler 가 사실은 인터페이스인것을 알수 있습니다.
인터페이스에 당연히 함수가 명시되어있는데 그게 ServeHTTP함수 입니다.
즉, k에는 ServeHTTP함수를 넣어줘야합니다. (브라우저에 Hello 가 찍힙니다.)
package main
import (
"fmt"
"net/http"
)
// type Handler interface {
// ServeHTTP(ResponseWriter, *Request)
// }
type MyWebserverType bool
func (m MyWebserverType) ServeHTTP(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello there !!!")
fmt.Fprintln(w, "Request is %+v: ", r)
}
func main() {
fmt.Print("Hello")
var k MyWebserverType
http.ListenAndServe("localhost:8080", k)
}
728x90