티스토리 뷰

1. http로 서버 만들기

1) http로 서버 만들기

* 서버와 클라이언트

  • 클라이언트가 request -> 서버는 request를 처리하여 response

2) 노드로 http 서버 만들기

* http 요청에 응답하는 노드 서버

  • createServer로 요청 이벤트에 대기
  • req 객체는 요청에 관한 정보가, res 객체는 응답에 관한 정보가 담겨 있다.

3) 8080 포트 연결

* res 메서드로 응답을 보냄

  • write로 응답 내용을 적고 end로 응답 마무리
  • http://127.0.0.1:8080에 접속
  • localhost는 컴퓨터 내부 주소로 외부에서는 접근 불가능

4) 이벤트 리스너 붙이기

 

2. REST API와 라우팅

1) REST API

  • 서버에 요청을 보낼 때는 주소를 통해 요청의 내용을 표현
  • REST API: 서버의 자원을 정의하고 자원에 대한 주소를 지정하는 방법
    • /user: 사용자 정보에 관한 정보를 요청하는 것
    • /post: 게시글에 관련된 자원을 요청하는 것
  • HTTP 요청 메서드
    • GET: 서버 자원을 가져오려고 할 때 사용
    • POST: 서버에 자원을 새로 등록하려고 할 때 사용
    • PUT: 서버의 자원을 요청에 들어있는 자원으로 치환하고자 할 때 사용
    • PATCH: 서버 자원의 일부만 수정하고자 할 때 사용
    • DELETE: 서버의 자원을 삭제하고자 할 때 사용

2) HTTP 프로토콜

  • 모든 클라이언트와 서버간의 약속. HTTP 프로토콜로 소통 가능
  • RESTful: REST API를 사용한 주소 체계를 이용하는 서버

3) 쿠키

* 요청의 단점: 누가 요청했는지 모름(ip주소, 브라우저 정도만)

  • 키와 값의 쌍
  • 매 요청마다 서버에 동봉해서 보냄
  • 서버는 쿠키를 받아 읽어서 누구인지 파악
  • writeHead: 요청 헤더에 입력하는 메서드
  • Set-Cookie: 브라우저에게 쿠키를 설정하라고 명령
  • req.headers.cookie: 쿠키가 문자열로 담겨있음
  • req.url: 요청주소
  • http의 요청과 응답은 헤더와 본문을 가진다.
    • 헤더는 요청 또는 응답에 대한 정보를 갖는다.
    • 본문은 주고받는 실제 데이터
    • 쿠키는 부가 정보이므로 헤더에 저장된다.

4) http 상태코드

  • 2xx: 성공 상태 코드
  • 3xx: 리다이렉션(다른 페이지로 이동)
  • 4xx: 요청 오류
  • 5xx: 서버 오류

5) 세션 사용하기

  • 쿠키의 정보는 노출되고 수정되는 위험이 있다.
    • 중요한 정보는 서버에서 관리하고 클라이언트에는 세션 키만 제공된다.
    • 서버에 세션 객체 생성 후 키를 만들어 속성명으로 사용

6) https

  • 웹 서버에 SSL 암호화를 추가하는 모듈
    • 오고 가는 데이터를 암호화해서 중간에 다른 사람이 요청을 가로채더라도 내용을 확인할 수 없음
    • 요즘은 https가 필수
  • http 서버를 https 서버로 변경하여 암호화를 위해 인증서 발급 필요
  • http2
    • SSL 암호화와 더불어 최신 HTTP 프로토콜인 http/2를 사용하는 모듈: 요청 및 응답 방식인 기존 http/1.1보다 개선되고 웹의 속도도 개선되었다.

7) cluster

  • 싱글 스레드인 노드가 CPU 코어를 모두 사용할 수 있게 해주는 모듈
    • 포트를 공유하는 노드 프로세스를 여러 개 둘 수 있다.
    • 요청이 많을 때 병렬로 실행된 서버 개수만큼 요청을 분산
    • 서버에 무리가 덜 간다.
    • 컴퓨터 자원을 공유하지 못함
    • Redis와 같은 별도 서버로 해결

'Node.js' 카테고리의 다른 글

5. MySQL  (0) 2023.04.05
4. Express 웹 서버 만들기  (0) 2023.04.05
3. 패키지 매니저  (0) 2023.04.05
1. 노드 기본 기능 익히기  (0) 2023.04.04
1. 노드 기본 기능 익히기  (0) 2023.04.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함