03.24 학습! 🟥🟧🟨🟩🟦🟪🟫⬜⬛🫢🔔😎😊🤔😭⭐🫢
Stateless: 상태를 기억하지 않음
왜? Stateless 할까? -> 이렇게 해놓으면 단순해지기 때문!
단순성 (속도), 확장성 (요청 분산 가능), 신뢰성 (독립적), 자원절약 (메모리 절약)
Cookie, Session등으로 stateless 특성 보완
⭐순서⭐
최초 요청
WAS(Tomcat)에서 쿠키 생성!
response 시 쿠키 전송
브라우저에 쿠키 저장
request 시 쿠키 전송
KEY VALUE값으로 생성 저장
domain: 설정된 도메인과 그 하위 도메인만 접근 가능
path: 쿠키가 유효한 경로 (경로 미 설정 시: context root 설정)
⭐ 유효 기간 ⭐
양수 : 해당 시간까지 쿠키 존재
음수 : 세션 쿠키로 세션 종료 시 폐기
0 : 브라우저에 도착하는 즉시 폐기
secure: HTTPS 에서만 전송 허용
자바스크립트에서는 잘 안되는 거 CORS SOP
httpOnly HTTP 에서만 관리해!
⭐response 되어야 쿠키가 생성된다!
page 영역 - 하나의 page -> 페이지 내에서 만 존재
request 영역
session 영역
application 영역 - 여러 session으로 구성 -> 애플리케이션이 종료될 때까지 존재
서버에 클라이언트의 상태 값을 저장
세션이 동작하기 위해서는 JSESSIONID라는 이름의 쿠키 필요
JSESSIONID는 서버의 세션 공간에 들어가기 위한 키!
HttpSession 사용
Servlet에서 Session 객체 획득
request.getSession(): 현재의 세션을 반환하며 아직 없을 경우 새로 생성
HttpSession ⭐유효기간⭐
세션은 getLastAccessedTime() 부터 getMaxInactiveInterval() 까지 유효
get, forward, fetch
비동기 await fetch
화면 안바뀌는 것은 동기 -> 비동기로 하는 것들이 있음
Catalina는 큰 자동차다 - 작은 자동차를 태운다 (Spring Container)
서버에서는 클라이언트 코드가 돌지 않는다
화면 변하지 않음 -> 뒤에서 일어남 -> 데이터만 이동 => 비동기
사용할 때
1. 아이디 가입 -> 이미 아이디가 있어 -> 아이디가 있다고만 알림
2. 세계 대학교를 찾을 때 미국 클릭 -> 대학교 쫙 뜸 -> MIT 선택 -> 과가 다 뜸 -> 왼쪽에 있는 데이터를 계속 가져가야 함;;
=> 이럴때 비동기를 통해 효율적으로 처리 가능하다!
front vs backend 비동기 vs 동기 구분 할 줄 알아야 함
리액트 비동기 MVC 동기
비동기를 할 수 있게 하는 가장 중요한 놈 -> XHR
get방식은 send 없음
data를 바디에 넣어서 보냄
답이 오면 callback이 가로채서
이걸 감싼게 React Axios, 바닐라 Fetch, J-Query ajax
비동기에는 jsp가 없다
jsp가 없어졌다 -> data가 온다
A를 요청하고 B를 요청했다 -> A 오고 B 오는게 보장이 안된다!
보장을 하고 싶을때 async, await 로 하는 것
동기안에 비동기는 사용 가능
비동기에 동기를 넣으면 목졸림
회원가입
fetch 사용
인증(Authentication) vs 인가(Authorization)
사용자가 주장하는 신원을 확인하는 과정 vs 인증된 사용자에게 어떤 자원이나 기능을 사용할 수 있는 권한을 부여하는 과정
로그인은 인증! Authentication!
stateless vs stateful

session vs cookie

동기 vs 비동기
동기 : db 가져오고 html로 바꾸고 클라이언트에 html 던짐 dom 으로 렌더링
비동기 : jsp 없음 data가 날라옴 화면이 javascript 로 렌더링 됨
서버렌더링 vs 자바스크립트 렌더링이랑 같은 이야기임

알고리즘 연습!