Skip to content

Latest commit

 

History

History
57 lines (46 loc) · 1.25 KB

1.2_http0.9.md

File metadata and controls

57 lines (46 loc) · 1.25 KB

HTTP/0.9

텍스트 정보가 적힌 페이지 경로를 서버에 지정해서 해당 페이지를 가져오기만 하는 프로토콜

Summary of HTTP 0.9

HTTP/0.9 프로토콜의 특징

  • 브라우저는 GET 메서드로 서버/문서를 식별하고 물음표를 통해 검색데이터를 전송함.
  • 서버는 GET 메서드에 응답하고 HTML(ASCII)를 리턴함.
  • 서버는 브라우저의 상태를 유지하지 않음.

HTTP/0.9 서버 테스트

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