[Node.js] #5 HTTP
Node.js 에서 HTTP 모듈
http 모듈은 노드에서 가장 기본적인 웹 모듈이며 http 웹 서버뿐만 아니라 클라이언트를 생성하는 것과 관련된 모든 기능을 담당하는 모듈이다. 네트워크 기능을 담당하는, 서버를 위한 필수 모듈!
HTTP 기본 모듈
- http.createServer() : 서버 생성. 서버 인스턴스를 만들어 반환한다.
- http.server() : 서버 클래스를 뜻한다.
- server.listen() : 만들어진 서버 객체 server를 클라이언트 요청 대기 상태로 만든다. (listen)
예제
전에 정리했듯이 노드는 서버 프로그램이 아닌 런타임이다! http 모듈이 노드를 통해 server.js 가 서버의 역할을 할 수 있도록 만들어주는 것이다.
여기서 createserver에서 callback 함수에 인자값으로 req와 res를 넣어주는데, req와 res는 무엇인가?
Request, Response
Http 요청이 서버에 오면 node가 트랜잭션을 다루기 위해 request와 response 객체를 전달항여 요청 핸들러 함수를 호출한다.
Request 객체에는 요청이 왔을 때 정보들을 처리할 내용들을 담아주고,
Response 객체에는 그 요청에 대한 응답의 내용들을 담아준다.
여기서 Response 객체에는 write 메소드로 응답 내용을 적어주었다. write메소드로 응답 내용들을 여러번 적어줄 수도 있다.
end 메소드로 응답의 끝을 알린다.
이렇게 일일이 res객체에 응답 내용을 적어줄 수도 있지만 기나긴 내용을 한줄한줄 응답객체에 일일이 써주는건 쩜 무리다..
그렇기 때문에 응답할 html 파일을 fs 모듈로 읽어서 res객체를 통해 전송할 수도 있다.