엘리허 2021. 10. 5. 15:34

오늘의 코딩하다 궁금증?

$(document).ready(function(){}); 이란?

문서가 준비되면, 매개변수로 넣은 콜백함수를 실행하라는 의미!

Code includes inside $(document).ready() will ondly run once the page Document Object Model is ready for JavaScript code to execute.

 

라우터란?

클리이언트의 요청 경로(path)를 보고 이 요청을 처리할수 있는 곳으로 기능을 전달해주는 역할

애플리케이션 엔드 포인트의 정의 그리고 url가 클라이언트 요청에 응답하는 방식을 의미한다.

예를 들어, 클라이언트가 /user 경로로 요청을 보낸다면, 이에대한 응답 처리를 하는 함수를 별도로 분리해서 만든다음 get()메소드를 호출하여 라우터로 등록 가능

 

라우터 사용하기

익스프레스에선 이러한 라이투를 미들웨어로 사용

1. 라우터 객체 참조

2. 라우팅 함수 등록

3. 라우팅 객체를 app 객체에 등록

 

router 객체의 route 메소드를 통해 요청 경로를 지정 할수 있으며, get()이나, post()등의 메소드를 호출하면 실행 될 함수를 등록 할수 있다.

 

 

쿠키: 브라우저가 서버로 부터 응답으로 셋쿠키 헤더를 받은 경우 해당 데이터를 저장 한 뒤 모든 요청에 포함하여 보냄

세션: 쿠키를 기반으로 구성된 기술, 단 클라이언트가 마음데로 데이터를 확인 할수 있던 쿠키와 다르게 세션은 데이터를 서버에 저장하기 때문에 보안이 좋으나, 반대로 사용자가 많은 경우 서버에 저장해야 할 데이터가 많아져, 서버 컴퓨터가 감당하지 못하는 문제

 

express 미들웨어

미들웨어는 어떠한 요청에 대해서 공통적으로 처리하는 로직을 모아둔 코드 덩어리

express.static(path) : path에 입력한 경로에 있는 파일을 그대로 서빙해주는 기능을 수행하는 미들웨어 

router의 기능을 일부 가지고 있음

express.json:  http Request에서 body에 담긴 json 형식의 데이터를 express서버에 사용할수 있게 해주는 미들웨어

express.urlencoded: http Request에서 body에 담긴 form형식의 데이터를 express서버에서 사용할수 있게 해주는 미들웨어

 

Rest API

rest 아키텍처에 따라 구현된 api를 rest api

원래 있던 방법보다, 더 쉽고 사람이 읽기 편한 방식으로 원칙을 세워 놨고, 생산성과 상호작용 증진 목적!

 

JWT

JSON 형태의 데이터를 안전하게 교환하여 사용할수 있게 해줌

header.payload.signature 의 형식으로 3가지 데이터를 포함(머리, 가슴 ,배)

header(머리)는 signature(배)에서 어떤 암호화를 사용하여 생성된 데이터인지 표현

payload(가슴) 개발자가 원하는 데이터를 저장

signature(배)는 이 토근이 변조되지 않은 정상적은 토큰인지 확인 할수 있도록 도와준다.

 

http 인증 방식

1.basic 인증 

기본 인증 방식으로 클라이언트에 대한 사용자 이름과 암호를 base64로 인ㅌ코딩 문자열을 보낸다
보편적 하지만 스니핑 공격에 취약하다!

 

 

2.digest 인증

사용자명 패스워드 등을 조합하여 md5 값으로 인증한다. 기본 인증보다, 보안이 강화된 인증방식

동작원리는 클라이언트에서 페이지를 요청하면, 서버는 digest 인증이 필요하다고 통보하고, 클라이언트는 사용자 아이디 패스워드를 입력하면,

MD5?

128비트 암호화 해시 함수

암호화 체크섬, 무결성 검사에 사용된다

임의의 길이 문자열 입력 128 비트 문자열 출력

 

SSL 클라이언트 인증

유저 ID와 패스워드를 사용한 인증 방식은 두가지 정보가 정확하면 본인 인증 가능 -> 하지만 3자 접근 가능성!

이 대책중 하나가, SSL 클라이언트 인증 

https의 클라이언트 인증서를 사용하여 인증하는 방식 

단점으로는 비용이 많이 들어감.

 

폼베이스 인증

가장 보편화된 인증

http가 표준으로 제공하는 basic, digest 인증은 사용상 문제, 보안적인 문제로 거의 사용되지 않고 있음

SSL 클라이언트 인증도 도입비용이나 운용비용등의 문제로 거의 사용하지 않고 있음

 

폼베이스 인증은 http 프로토콜로서, 사양이 정의되어 있는 인증 방식이 아님,

클라이언트가 자격정보를 송신하여 검증 결과에 따라 인증을 하는 방식

그래서 웹 애플리케이션마다 제공하는 인터페이스나 인증의 방법이 다양!

하지만 공통 사양이 없기 때문에 웹 싸이트별로 다르게 구현하고 있으며 안정한 방법으로 구현시 높은 보안 등급을 유지 할수 있지만 문제 있는 구조를 사용하는 웹싸이트도 있음.