텍스트 정보가 적힌 페이지 경로를 서버에 지정해서 해당 페이지를 가져오기만 하는 프로토콜
- 브라우저는 GET 메서드로 서버/문서를 식별하고 물음표를 통해 검색데이터를 전송함.
- 서버는 GET 메서드에 응답하고 HTML(ASCII)를 리턴함.
- 서버는 브라우저의 상태를 유지하지 않음.
package main
import (
"fmt"
"log"
"net/http"
"net/http/httputil"
)
func handler(w http.ResponseWriter, r *http.Request) {
dump, err := httputil.DumpRequest(r, true)
if err != nil {
http.Error(w, fmt.Sprint(err), http.StatusInternalServerError)
return
}
fmt.Println(string(dump))
fmt.Fprint(w, "<html><body>Hello</body></html>\n")
}
func main() {
var httpServer http.Server
http.HandleFunc("/", handler)
log.Println("start http listening :8080")
httpServer.Addr = ":8080"
log.Println(httpServer.ListenAndServe())
}
Client Side
curl --http1.0 localhost:8080/hi
<html><body>Hello</body></html>
Server Side
GET /hi HTTP/1.0
Host: localhost:8080
Connection: close
Accept: */*
User-Agent: curl/7.79.1