본문 바로가기

Programming

(467)
5. http 모듈로 서버 만들기 (3) - 쿠키와 세션의 이해 [2] 앞선 아티클에서 쿠키가 오고가는 과정을 간략하게 설명했습니다. 서버가 브라우저에게 전달하는 쿠키는 res의 헤더(Set-Cookie)에 담겨 브라우저에 전달되고, 브라우저가 저장하게 됩니다. 그리고 브라우저가 서버에게 req를 보낼 때 req의 헤더(Cookie)에 담겨 전달하게 됩니다.   5. http 모듈로 서버 만들기 (3) - 쿠키와 세션의 이해 [1]너무나도 당연한 이야기이지만, 다소 어려울 수 있는 이야기를 해보겠습니다. 우리가 어떤 사이트에 '로그인'을 했다고 가정해 보겠습니다. 그런데 그 사이트에서 새로고침을 실행합니다. 자,nozeroslope.tistory.com  이제 아래 예제에서, 직접 쿠키를 생성해 요청한 대상의 브라우저에 해당 정보를 보내보겠습니다. 다시 한번 설명하지만, 쿠..
5. http 모듈로 서버 만들기 (3) - 쿠키와 세션의 이해 [1] 너무나도 당연한 이야기이지만, 다소 어려울 수 있는 이야기를 해보겠습니다. 우리가 어떤 사이트에 '로그인'을 했다고 가정해 보겠습니다. 그런데 그 사이트에서 새로고침을 실행합니다. 자, 그럼 여기서 로그인은 어떻게 될까요? 당연히 로그인이 되어있는 상태로 유지가 되어 있습니다. 이는 너무나도 당연한 이야기라고 생각하실 것입니다.  하지만, 이 상황은 전혀 '당연한' 것이 아니라고 보셔야 합니다. 새로고침을 했다는 것은 곧 '새로운 req'를 보냈다는 의미가 되는 것이기 때문이죠. 새로운 req가 갔다는 것은, 서버에서 res가 갔다는 것을 의미합니다. 하지만 사용자가 로그인 된 상태를 유지하고 있다는 의미가 되는 것이죠. 이는 곧 클라이언트가 서버에 '사용자가 누구인지를 계속 알려주고 있기 때문에' 가능..
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [9] : header, body 앞선 아티클에서 구현한 RESTful 서버의 동작에서 확인 가능한 req, res에서 헤더와 바디의 개념을 다시 한번 짚고 넘어가도록 하겠습니다. 아마 헤더와 바디에 대해서 관념적으로는 들은 것이 많겠지만, 좀 더 정확한 정보를 알아보도록 하겠습니다.  기본적으로 req와 res는 모두 헤더와 바디를 갖습니다. 헤더는 req or res에 대한 정보를 갖고 있습니다. 바디는 서버와 클라이언트 간에 주고받을 실제 데이터를 저장합니다.  HTTP 요청 또는 응답은 아래와 같은 형태로 도식화 할 수 있겠네요.   [HTTP req 또는 res]HTTP 헤더(1) 일반(공통)헤더(2) 요청/응답의 헤더(3) 엔티티 헤더HTTP 본문    ....     우리가 앞선 아티클에서 실습한 restServer.js..
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [8] 앞선 아티클에서 작성한 restServer.js를 계속해서 살펴보겠습니다. 작성된 코드 중, PUT과 POST에 대해서 집중적으로 살펴보겠습니다.    5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [7]우선 앞서 작성했던 RESTful 서버 구현 관련 코드를 전부 다시 살펴보겠습니다.     [restFront.css]a { color: blue; text-decoration: none;}  [restFront.html] home about 등록하기   [restFront.js] // 로딩 시 사용자nozeroslope.tistory.com   [restServer.js]const http = require('http');const fs = require('fs').promises;co..
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [7] 우선 앞서 작성했던 RESTful 서버 구현 관련 코드를 전부 다시 살펴보겠습니다.     [restFront.css]a { color: blue; text-decoration: none;}  [restFront.html] home about 등록하기   [restFront.js] // 로딩 시 사용자 정보를 가져오는 함수async function getUser() { try { const res = await axios.get('/users'); const users = res.data; const list ..
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [6] 앞선 아티클에서 여러가지 파일 코드를 작성했습니다. 특히 핵심인 [restServer.js]의 일부를 작성했는데요, 그 나머지 부분을 작성해 보겠습니다.   [restServer.js]const http = require('http');const fs = require('fs').promises;const path = require('path');// 유저 데이터 저장용const users = {};http.createServer(async (req, res) => { try { console.log(req.method, req.url); if (req.method === 'GET') { if (req.url === '/') { ..
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [5] 앞선 아티클에서 작성하던 RESTful 서버 구현 예제를 이어서 계속 진행해 보겠습니다.   [restFront.css]a { color: blue; text-decoration: none;}  [restFront.html] home about 등록하기   [restFront.js] // 로딩 시 사용자 정보를 가져오는 함수async function getUser() { try { const res = await axios.get('/users'); const users = res.data; const list..
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [4] 앞선 아티클에서 작성한 RESTful 서버 구현 예제를 이어서 진행해 보겠습니다.     [restFront.css]a { color: blue; text-decoration: none;}   [restFront.html] home about 등록하기   [restFront.js] // 로딩 시 사용자 정보를 가져오는 함수async function getUser() { try { const res = await axios.get('/users'); const users = res.data; const list ..