일단 씻고 나가자

23.08.03 본문

Study/닥치는 대로 주워 담기

23.08.03

일단 씻고 나가자 2023. 8. 4. 03:02

2023. 08. 03 목요일

 

- [Effecive Java] Enumordinalinstant field? 주의사항?

: ordinal은 각 변수가 몇 번째로 선언되었는지 반환해주는 내장 함수이다.

다만 ordinal()은 자료구조를 위해(EnumMap/Set) 사용되는 함수이지 엄밀히 사용자를 위한 함수는 아니고, 순서대로 매겨진 값으로 로직에 활용했을 경우 중간에 다른 값이 끼어든다든가 하는 문제가 생길 수 있으므로 var(1)처럼 사용자가 직접 값을 넣는 instant field를 활용해야 한다.

 

 

- HTTP method의 종류, 설명?

GET

// url에 요청한 정보가 “?key1=val1&key2=val2..” 형식으로 표기되며,

흔히 정보를 가져오기(읽기) 위한 방식.

 

2. POST

// url에 요청한 정보가 표기되지 않으며, 따라서 민감한 정보에 쓰인다.

흔히 서버에 데이터를 입력할 때 사용.

정보는 HTTP Request-Body으로 전달된다.

 

3. PUT

// 정보 수정(UPDATE)

 

4. DELETE

// 정보 삭제(DELETE)

 

 

- status code? 주요 status code(200, 400, 401, 403, 404, 500) 설명?

: 응답 코드. HTTP 메서드로 요청한 정보가 서버에서 어떻게 처리되었는지를 알려주는 정보.

200 정상

400 유효하지 않은 파라미터 또는 잘못된 요청

401 승인되지 않은 엑세스 (권한)

403 엑세스 금지

404 리소스를 찾을 수 없음

500 내부 서버 오류

 

 

- 쿠키, 세션이란? 설명? 유효기간? 세션, 쿠키, 토큰, JWT?

: 쿠키란 정보를 웹 브라우저에 저장해놓는 기술로서, 예를 들면 로그인 시에 id, passwordrequest 하면 서버에서 회원인지 확인한 후 Set-Cookieid, pw 정보를 저장하여 쿠키에 담아 response 한다. 이후의 모든 requestcookie : ~~ 의 쿠키 정보를 동반하며, 서버에선 해당 쿠키 정보로 이미 로그인된 아이디임을 확인하고 적당한 자원을 보내준다.

, 쿠키 방식은 아스키 코드로 모든 정보가 이루어져 있기 때문에 TCP를 확인만 하면 id, pw 정보를 모두 확인할 수 있어 보안에 취약하다.

 

이를 보완하기 위해 나온 세션으로, 동일하게 쿠키의 방식을 활용하나 Set-Cookie 시에 암호화된 정보를 서버에 따로 보관하고 쿠키에 담는다. 이후 똑같은 방식으로 통신하며 서버는 암호화된 정보를 동일 사용자로 판단하고 자원을 보내준다.

, 암호화된 정보는 id, pw 뿐 아니라 해당 사용자의 IP, agent 정보, 웹 브라우저 정보 등의 모든 정보를 활용하여 특정 알고리즘을 통해 도출한 값이고 요청이 올 때마다 재계산하여 서버에 저장된 값과 동일하게 나오는지 판단한다.

 

둘의 유효기간은 expires 설정이 있으면 로컬 디스크(서버)에 저장하여 유효기간 경과 시 삭제하고, 없다면 메모리(브라우저)에 저장 후 브라우저 종료 시 삭제한다.

 

세션은 쿠키를 전달하기 위한 매개체일 뿐이고, 세션 DB에서 쿠키에 담겨진 암호화된 세션 ID를 확인한다. JWT는 토큰을 확인하는데, 이 토큰은 암호화되어 있지 않지만 단순히 권한(유효한지)을 확인하는 용도로 이용된다. 따라서 토큰에 주요한 정보를 담아선 안 된다.

 

'Study > 닥치는 대로 주워 담기' 카테고리의 다른 글

23.10.04  (0) 2023.10.04
23.08.04  (0) 2023.08.04
23.08.02  (0) 2023.08.03
23.08.01  (0) 2023.08.02
23.07.27  (0) 2023.07.28