우리가 치킨을 시켜먹을때, 전화로 이렇게 말한다
“여기는 A아파트구요, B동 C호에요… 치킨 한마리 배달해주세요”
그러면 우리는 약간의 시간 뒤에 우리가 주문한 치킨을 집(전화로 말한 주소)에서 받게 된다.
이러한 맥락에서 URL을 웹 브라우저에 입력하는 것은 치킨을 시키는 전화로 볼 수 있고,
웹페이지를 웹브라우저으로부터 받는 것을 치킨집으로부터 치킨을 받는 것으로 볼 수 있다.
이러한 비유가 웹페이지의 요청과 응답에 대한 기본적인 이해이다.
서버는 요청을 보내는 방법에 따라 http 웹서버 또는 https 웹서버 등으로 불린다.
요청메시지를 사용하면, 유저들에게 더 적합한 웹페이지를 보여줄 수 있다.
응답메시지를 사용하면, 쿠키를 사용, 저장하거나 페이지 강제 이동 등의 추가 기능을 사용할 수 있다http모듈에서 가장 중요한 객체는 server객체이다.server객체는 http 모듈의 createServer()메소드를 사용하여 만들 수 있다.
server객체의 메소드
listen(port[, callback])— 서버를 시작한다close([callback])— 서버를 중지한다
server객체의 이벤트
request— 사용자가 무언가를 요청할 때 발생connection— 사용자가 서버에 접속할 때 발생close— 서버가 닫힐 때 발생checkContinue— 사용자가 서버를 계속 열고 있을 때 발생upgrade— 사용자가HTTP업그레이드를 요청할 때 발생clientError— 사용자가 에러를 발생시키면 발생
웹페이지를 제공하고자 할 때, 요청메시지를 작성해야한다.
요청메시지의 작성은 request 이벤트 리스너의 두번째 매개변수인 response객체를 통해 할 수 있다.
Response객체의 메소드
writeHead(statusCode[, statusMessage][, headers])—response header를 작성할 때end([data][, encoding][, callback])—response객체의 본문을 작성