Topic/Node.js | server
-
jwt, 쿠키, 세션, 토큰Topic/Node.js | server 2022. 2. 8. 22:06
세션 서버가 Client에 유일하고 암호화된 ID를 부여 중요 데이터는 서버에서 관리 설명 접속 상태 저장 경로 장점 단점 Cookie 쿠키는 단지 http의 stateless한 것을 보완해주는 도구 클라이언트 서버에 부담을 덜어준다. 쿠키 그 자체는 인증이 아니다. Session 접속 상태를 서버가 가짐(stateless) 접속 상태와 권한 부여를 위해 세션아이디를 쿠키로 전송 서버 신뢰할 수 있는 유저인지 서버에서 추가로 확인 가능 하나의 서버에서만 접속 상태를 가지므로 분산에 불리 토큰 세션기반 인증 = 서버(혹은 DB)에 유저 정보를 담는 방식 "이 부담을 클라이언트에게 넘겨줄 수 없을까?"에서 고안 대표적인 토큰 기반 인증 -> JWT(JSON Web Token) 토큰은 마패로 생각하자! (복잡..
-
인증 & 보안 기초Topic/Node.js | server 2022. 2. 7. 22:16
HTTPS HTTPS: Hyper Text Transfer Protocol Secure socket layer 인증에서 HTTPS 프로토콜을 사용해야만 하는 이유 HTTP보다 상대적으로 안전하고, 데이터 제공자의 신원을 보장받을 수 있기 때문이다. 암호화 HTTPS 프로토콜의 특징 중 하나는 암호화된 데이터를 주고받기 때문에, 중간에 인터넷 요청이 탈취되더라도 그 내용을 알아볼 수 없다. 그렇기 때문에 데이터를 암호화하여 전송하는 HTTPS 프로토콜을 사용한다면 비밀번호와 같은 중요한 데이터가 유출될 가능성이 HTTP 프로토콜보다 현저히 적어지게 된다. 인증서 브라우저가 응답과 함께 전달된 인증서 정보를 확인할 수 있는 특징을 가진다. 브라우저는 인증서의 도메인과 데이터를 제공한 제공자의 도메인을 비교할..
-
클라이언트 빌드 및 배포Topic/Node.js | server 2022. 1. 11. 16:58
SSR / CSR ✔️ SSR ( Server Side Rendering ) 웹 페이지를 서버에서 렌더링하는 방식 브라우저가 서버의 URI로 GET 요청을 보내면, 서버는 정해진 HTML 파일을 브라우저로 전송한다. 이 HTML파일이 브라우저에 도착하면 유저가 바로 볼 수 있다. 서버에서 웹 페이지를 브라우저로 보내기 전에, 서버에서 완전히 렌더링했기 때문에 SSR이라 한다. 웹 페이지의 내용에 데이터베이스의 데이터가 필요한 경우, 서버는 데이터베이스의 데이터를 불러온 다음 웹 페이지를 완전히 렌더링 된 페이지로 변환한 후에 브라우저에 응답으로 보낸다. 유저가 브라우저의 다른 경로로 이동할 때마다 서버는 리렌더링을 한다. 장점 1. 웹 페이지 로딩이 빠르다. // view를 서버에서 렌더링해 가져오기 때..
-
EXPRESS, 리팩토링, MiddlewareTopic/Node.js | server 2021. 12. 30. 22:20
Node.js Express ✔️ MERN Stack: MongoDB, Express, React, Node 프레임워크 Express 장점: 미들웨어 추가가 편리하다. 자체 라우터를 제공한다. 기본 라우팅 ☑️ 라우팅은 URI 및 특정한 HTTP 요청 메소드(GET, POST 등)인 특정 엔드포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는 것을 말한다. 각 라우트는 하나 이상의 핸들러 함수를 가질 수 있으며, 이러한 함수는 라우트가 일치할 때 실행된다. app.METHOD(PATH, HANDLER) app은 express의 인스턴스 METHOD는 HTTP 요청 메소드 PATH는 서버에서의 경로 HANDLER는 라우트가 일치할 때 실행되는 함수 간단한 라우트의 정의 // 홈페이지에..
-
Web Server 기초, CORS, Node.js, HTTP 트랜잭션 해부Topic/Node.js | server 2021. 12. 29. 15:36
CORS ✔️ 고도화된 최근의 웹으로 인해 여러 곳의 리소스를 활용할 필요성이 대두되었고, 선배 개발자분들의 노력으로 CORS가 생겨나게 되었다. 예전과 다르게 same origin이 아니라 cross origin 요청을 해야 한다. Cross Origin Resource Sharing: cross origin에서 리소스(서버자원)을 요청하여 사용한다. const defaultCorsHeaders = { 'access-control-allow-origin': '*', 'access-control-allow-methods': 'GET, POST, PUT, DELETE, OPTIONS', 'access-control-allow-headers': 'content-type, accept', 'access-con..
-
HTTP, 브라우저의 작동원리, REST APITopic/Node.js | server 2021. 12. 24. 17:10
HTTP HTTP: HyperText Transfer Protocol HTML과 같은 문서를 전송하기 위한 프로토콜 // 웹 브라우저와 웹 서버의 소통을 위해 디자인되었다. 특징: Stateless(무상태성) HTTP messages 요청(Requests) / 응답(Responses) 요청과 응답의 유사한 구조 start line: start line에는 요청이나 응답의 상태를 나타낸다 // 첫번째 줄 HTTP headers: 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합이다. empty line: 헤더와 본문은 구분하는 빈 줄 body: 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함한다. // 선택적으로 사용한다. 이 중 start line과 HTTP headers를 ..