티스토리 뷰





반응형

Connectionless Protocol

서버의 부하를 줄일 수 있는 장점이 있으나, 클라이언트 요청 시마다 서버와 매번 새로운 연결이 생성되기 때문에 일반적인 로그인 상태 유지, 장바구니 등의 기능을 구현하기 어렵다.

 

이러한 불편함을 해결하기 위해서 세션과 쿠키를 이용한다.

 

세션과 쿠키는 클라이언트와 서버의 연결 상태를 유지해주는 방법으로, 세션은 서버에서 연결 정보를 관리하는 반면 쿠키는 클라이언트에서 연결 정보를 관리하는데 차이가 있다.

세션이란?

일정 시간동안 같은 사용자(정확하게는 브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술이다. 방문자의 요청에 따른 정보를 방문자 메모리에 저장하는 것이 아닌 웹 서버가 세션 아이디 파일을 만들어 서비스가 돌아가고 있는 서버에 저장하는 것이다. 서버에 저장되기 때문에 사용자 정보가 노출되지않는다.

HttpServletRequest req
HttpSession session = req.getSession();
session.setAttribute("member", member);

HttpSession session
session.setAttribute("member", member);

HttpServletRequest와 HttpSession의 차이점은 거의 없으며, 단지 세션객체를 얻는 방법에 차이가 있을 뿐이다.

쿠키란?

웹 서버와 웹 브라우저(클라이언트)가 주고 받는 작은 데이터 조각, 서버가 클라이언트에 저장하는 정보로, 클라이언트와 연결이 끊어져도 클라이언트에 저장된 정보가 유지되어 서버에 재방문할 때 요청정보의 헤더 안에 포함되어 서버로 전달된다.

 

쿠키는 언제 사용하는가?

-이전에 방문한적 있는 웹서버에 다시 방문했을 때 몇 번째 방문인지 알아낼 때

-비로그인자가 쇼핑몰에서 주문할때까지 장바구니에 선택한 상품 정보들을 유지할 때

-포탈 사이트에서 클라이언트가 특별히 관심 있어하는 항목에 대한 정보 유지

-자동 로그인을 허용할 때

세션 유지하는 원리

1. 클라이언트가 서버로 접속을 시도한다.

2. 서버는 접근한 클라이언트의 request-header field인 쿠키를 확인한다.

3. 해당 클라이언트의 session-id가 없다면 서버는 session-id를 발급해서 서버에도 저장 후 클라이언트에게 데이터를 보낼 때 같이 보낸다.

4. 전달받은 session-id는 웹 브라우저에 쿠키 저장소에 저장했다가 다음 요청 시 데이터와 함께 보낸다.

5. 그러면 서버에서는 받은 session-id를 통해 저장된 데이터를 찾을 수 있다.

 

세션의 장점

-각 클라이언트에게 고유 ID를 부여한다.

-세션 ID로 클라이언트를 구분해서 클라이언트의 요구에 맞는 서비스를 제공가능

-사용해봤던 정보들은 서버에 저장하기 때문에 보안성이 쿠키보다 우수함

 

세션의 단점

-서버에 저장되기 때문에 서버에 처리를 요구하는 부하와 저장 공간을 필요로 한다.

 

쿠키사용 하는 예제

https://smujihoon.tistory.com/93

 

웹 사이트 아이디 저장

웹 사이트를 이용하다 보면 아이디 저장과 같은 옵션을 자주 접했을 것이다. 오늘이 이 아이디 저장을 구현해볼 계획이다. 제일 먼저 위와 같은 jsp를 구성중 일부를 가져오면 아래와같이 구성을 했다. 체크박스..

smujihoon.tistory.com

 

 

 

 

반응형
댓글
반응형
최근에 달린 댓글
글 보관함
Total
Today
Yesterday
최근에 올라온 글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30