티스토리 뷰
<Node.js 교과서>라는 책에 있는 간단한 이름 등록, 수정, 삭제하는 웹사이트 예제를 분석하면서,
웹의 작동 원리를 이해해 보려고 한다.
웹 초보자라 헷갈려서 가장 큰 골자를 직관적으로 이해할 수 있는 것을 목표로 정리해보려고 한다.
예제 코드 : github.com/ZeroCho/nodejs-book/tree/master/ch4/4.2
ZeroCho/nodejs-book
Contribute to ZeroCho/nodejs-book development by creating an account on GitHub.
github.com
기본 로직
클라이언트 역할 프로세스 : 브라우저(?) (restFront.js 코드는 이 브라우저 위에서 실행된다. 실행 환경이 브라우저)
서버 역할 프로세스 : restServer (restServer.js 는 서버측에서 실행된다. 실행 환경이 node)
작동 순서
(1) 서버 객체를 만든다. 이때 요청이 오면 어떻게 처리할 것인지 정해둔 callback 함수도 등록된다.
(2) 서버 객체는 8082 포트에서 요청이 오나 기다린다.
(3) 클라이언트로부터 요청이 온다.
(4) callback 함수를 호출해 처리하고 응답을 보낸다.
(5) 브라우저가 도착한 응답 데이터를 해석, 처리해서 화면을 띄운다
(2) - (5) 계속 반복.
createServer 인자로 준 callback 함수 분석
try
(1) 요청 방식 GET 인 경우
(1-1) 요청 url이 '/' 이면
응답으로 restFront.html 전송
(1-2) 요청 url이 '/about' 이면
응답으로 about.html 전송
(1-3) 요청 url이 '/users' 이면
응답으로 users 변수 내용 전송
(1-4) else
해당 url의 파일 읽기 성공하면 응답으로 전송
(2) 요청 방식 POST 인 경우
(2-1) 요청 url이 '/user/' 이면
요청 body 스트림 형식으로 전달받아
users에 key는 현재 시각으로 생성, value는 body.name으로 해서 등록 후
'ok'라고 응답보내기
(3) 요청 방식 PUT 인 경우
(3-1) 요청 url이 `/user/${key}` 형식이면
요청 body 스트림 형식으로 전달받아
users에서 이 key의 정보 body.name으로 수정 후
'ok'라고 응답 보내기
(4) 요청 방식 DELETE 인 경우
(4-1) 요청 url이 `/user/${key}` 형식이면
users에서 이 key의 정보 삭제 후
'ok'라고 응답 보내기
(5) else 404 not found라고 응답 보내기
catch
에러 처리
RESTful 한 웹서버
위 callback 함수 알고리즘에서 볼 수 있듯이, 요청 메서드 와 요청 url(주소)만 가지고 어떤 요청인지 알아볼 수 있었다.
이렇게 REST는 서버의 자원을 정의하고 자원에 대한 주소를 지정하는 방법을 뜻하고
REST를 사용한 주소 체계로 웹 서버를 만들면 RESTful 하다고 말한다고 한다.
HTTP methods
HTTP method는 request method이다! 응답이랑은 상관없음.
GET request
POST request
'시리즈 > Web' 카테고리의 다른 글
쿠키, 세션, passport.js (0) | 2021.04.30 |
---|---|
proxy와 CORS 2편 (0) | 2021.04.22 |
proxy와 CORS 1편 (1) | 2021.04.22 |
Real Time Web 선택지 비교 (0) | 2021.02.16 |
웹 서버 종류와 WAS (0) | 2021.02.15 |