Node.js 교과서 4장 정리

·2022년 1월 23일
post-thumbnail

4장. http 모듈로 서버 만들기

요청과 응답 이해하기

클라이언트는 서버에게 요청 (req)를 보내고, 이에 대해 서버에서 응답(res)를 보낸다.
한마디로 요청과 응답은 이벤트 방식이다.

REST와 라우팅 사용하기

서버에 요청을 보낼 때에는 주소를 통해 요청의 내용을 표현한다.

REST는 서버의 자원을 정의하고 이에 대한 주소를 지정하는 방법이며, 서버가 행할 수 있는 것들을 통틀어서 의미한다고 보면된다.

  • GET : 서버 자원을 가져오고자 할 때
  • POST : 서버에 자원을 새로 등록하고자 할 때
  • PUT : 서버의 자원을 요청에 들어 있는 자원으로 치환하고자 할 때
  • PATCH : 서버 자원의 일부만 수정하고자 할 때
  • DELETE : 서버의 자원을 삭제하고자 할 때

GET 메소드 경우 브라우저에서 캐싱할 수도 있다. 이렇게 캐싱이 되면 성능이 좋아진다.
http 모듈을 사용 시 클라이언트가 누구든 상관없이 서버와 소통할 수 있다.
https 모듈은 get, post 요청을 할 때 오고가는 데이터를 암호화해서 중간에 다른 사람이 요청을 가로채가더라도 내용을 확인할 수 없게 한다. 단, 인증서 발급이 필요하다.

쿠키와 세션 이해하기

쿠키

  • 유효 기간이 있으며 단순한 키,값의 쌍
  • 쿠키 설정 시 Expires,HttpOnly,Path 등 여러 옵션을 넣을 수 있다. 허나 이 중 한글과 줄바꿈이 들어가면 안된다.
  • 서버로부터 쿠키가 오면 브라우저는 쿠키를 저장해두었다가 다음에 요청할 때마다 쿠키를 동봉해서 보낸다. 즉, 서버는 요청에 들어있는 쿠키를 읽어 사용지가 누구인지 확인한다.

세션

  • 세션이라는 객체에 정보를 넣어서 세션아이디를 주고 받는다

  • 주로 데이터베이스에 넣어둔다

  • 쿠키는 조작될 (노출되기 때문에) 위험성이 있기 때문에, 이름 등의 민감한 정보는 쿠키가 아닌 세션에 넣어둔다.

    cluster

    cluster 모듈은 싱글 스레드인 노드가 CPU 코어를 모두 사용할 수 있게 만들어준다.
    즉, 코어를 하나만 사용할 때에 비해 성능이 개성된다. 하지만 세션을 공유하지 못하는 등의 단점이 있으나, Redis등의 서버 도입으로 해결이 가능한 문제다.

    클러스터는 마스터 프로세스, 워커 프로세스 두 종류가 있으며, CPU 개수만큼 워커 프로세스를 만들며, 워커 프로세스는 실질적인 일을 맡는다.

profile
풀스택 호소인

0개의 댓글