1. 요청과 응답 이해하기
클라이언트는 서버로 요청을 보내고, 서버에서는 요청을 처리한 뒤 클라이언트에게 응답을 보냅니다.
따라서 서버에는 요청을 받는 부분과 응답을 보내는 부분이 있어야 합니다.
const http = require('http'); //웹 브라우저의 요청을 처리하기 위해 http모듈을 사용합니다.
http.createServer((request,response) => {
//서버가 어떻게 응답할지 적어주는 곳 입니다.
response.write('<h1>Hello Node!</h1>');
response.end('<p>Hello Server!</p>');
}).listen(8080, () => {
console.log('8080번 포트에서 서버 대기 중');
});
listen 메서드에는 콜백 함수 대신 서버에 listening 이벤트 리스너를 붙여도 됩니다.
const http = require('http'); //웹 브라우저의 요청을 처리하기 위해 http모듈을 사용합니다.
const server = http.createServer((req, res) => {
res.write('<h1>Hello Node!</h1>'); //클라이언트로 보낼 데이터입니다.
res.end('<p>Hello Server!</p>'); //클라이언트로 데이터를 보낸 후 응답을 종료 합니다.
})
server.listen(8080);
server.on('listening', () => {
console.log('8080번 포트에서 서버 대기 중입니다!');
});
server.on('error', (error) => {
console.error(error);
});
html 모양의 문자열 뿐만 아니라 버퍼를 보낼 수도 있습니다. 또한, 여러 번 호출해서 데이터를 여러 개 보낼 수도 있습니다.
코드가 성공적으로 이루어졌는지 확인해보려면 http://localhost:8080 혹은 http://127.0.0.1:8080에 접속하여 확인합니다.
출력결과
*localhost와 포트란?
localhost(127.0.0.1)는 현재 컴퓨터의 내부 주소를 가리킵니다. 자신의 컴퓨터에서만 접근할 수 있어서 서버 개발 시 테스트용으로 많이 사용합니다.
포트는 서버 내에서 프로세스를 구분하는 번호입니다. 서버는 프로세스에 포트를 다르게 할당하여 들어오는 요청을 구분합니다. 대표적으로 21(FTP), 80(HTTP), 443(HTTPS), 3306(MYSQL)이 있다. 포트 번호는 IP주소 뒤에 콜론(:)과 함께 붙여 사용합니다.
*포트 충돌
사용 중인 포트를 사용할 경우 Error:listen EADDRINUSE :::포트 번호 같은 에러가 발생합니다. 이런 경우 그 서비스를 종료하거나, 노드의 포트를 다른 번호로 바꾸면 됩니다.
'웹개발(웹퍼블리셔) > 백엔드(Node.js)' 카테고리의 다른 글
Node.js 핵심 개념 논블로킹 I/O과 싱글 스레드 (0) | 2019.10.10 |
---|---|
Node.js 핵심 개념 이벤트 기반 (0) | 2019.10.09 |
(Node.js 교과서)쿠키와 세션 이해하기(2) (0) | 2019.08.30 |
(Node.js 교과서)쿠키와 세션 이해하기(1) (0) | 2019.08.29 |
(Node.js/노드)Console 과 Process (0) | 2019.08.11 |