HTTP response

브라우저에는 문자열이 아니라 정해진 순서의 바이트가 도착한다

작은 성공 응답도 상태 라인, 빈 줄, 선택적 본문을 정확히 이어 붙인 뒤 `TcpStream`으로 써야 한다.

version

HTTP/1.1

클라이언트가 이해할 응답 형식의 버전을 먼저 적는다.

status

200 OK

요청 처리 결과를 숫자 코드와 이유 문구로 요약한다.

separator

CRLF CRLF

헤더가 끝나고 본문이 시작됨을 빈 줄로 표시한다.

body

HTML content

본문이 있으면 `Content-Length`와 함께 브라우저가 렌더링할 데이터를 보낸다.

write_all

문자열을 바이트 슬라이스로 변환

stream.write_all(response.as_bytes())
first milestone

빈 페이지도 성공 응답이다

본문 없이 `HTTP/1.1 200 OK\r\n\r\n`만 보내도 브라우저는 오류 대신 정상 응답을 받은 것으로 처리한다.