52일차
webserver: 통신을 담당, 데이터베이스와 통신하지 못함... 클라이언트와 통신만 가능
webapp: pagecontext와 관련된 내용들 ...
tomcat안에 servlet api
httpServlet: 클라이언트에서 넘어온 데이터(web server에서)를 request에 담음
request와 response를 was에 넘김 (참조선)
WAS는 request와 response에 접근 가능해짐...
reload: pageContext를 다시 읽어들일 때..
application이 pageContext를 생성...
request를 forward하면 request가 webserver로.
redirect를 할 경우는 response가 webserver로
EL로 request를 사용
session: webserver가 관리,pga 역할
범용 session공간에 또다른 session 공간(개인공간)을 만들어줌..!
접속 정보는 session에 .. 웹서버가 session 공간에 개인 session공간을 만든다!
최초session은 application이 만들어준다
클라이언트가 접속했을때 생성, 접속해제시 소멸
>> browser에서 http신호가 날라오면 session생성, browser 종료시 session 소멸
똑같은 브라우저, 똑같은 ip -> 같은 세션 사용
브라우저가 완전히 종료되었을때 session(UA)소멸...
모든 브라우저는 종료창을 누르면 마지막 신호를 보낸다..!
session: 해킹당할 위험이 있어 최소한의 정보, 최적의 정보만을 담아야함
session에 들어갈 정보들은 암호화가 되어야한다...
서버에 로그인 : session 활용하는 것..!
req.getSession() => 클라이언트의 모든 정보는 request에 담겨 있으므로 .. 정보가 끊기기전에 접속정보(Session)을 저장
>> ip와 header가 들어있음, request에서 getparameter빼고는 다 session 정보!
session에 AccessInfo의 이름으로 setAttribute.. group안에 로그인에 대한 모든 정보가 들어있음
group안에 pin 저장하면안됨.. 해킹 위험
cookie ! -> JSESSIONID : 내 세션에 생성되어있는 기존의 sessionId, 클라이언트에 넘겨줄때 현재 서버주소와 sessionid를 넘겨줌. 웹 브라우저가 정보를 파일로 저장해줌 -> cookie
ID에 가서 웹브라우저와 접속한 웹브라우저의 ip가 같은지 확인하는 작업 ...
아이디 기억 : cookie 사용 => loginId 쿠키
세션: 30분간 유지, 사용하지 않을경우 :폐기
세션 종료시(destroy) db 로그아웃 : 사용자가 요청하지 않은 로그아웃 : 금융권말고는 잘 사용하지않음..
중복로그인시 기존 ip로그아웃 : 일관성 유지 가능
더많은 정보를 accessLog DB에 넣어야함.. (기기, 국가, 사설 ip, 공인 ip , 이중로그인을 방지하기위한 로그아웃인지..?, 브라우저 정보 등등... )
브라우저 정보: request header userAgent
mozilla: 브라우저가 공통으로 사용하는 엔진
indexOf() : 없으면 -1 반환.
indexOf(Trident) 했을때 0보다 크면 explorer!
indexOf(edge || edg) 했을 때 0보다 크면 edge