개인용 복습공간

[Jsp] 세션과 쿠키 - (1) 본문

웹/Jsp, Servlet

[Jsp] 세션과 쿠키 - (1)

taehwanis 2021. 5. 28. 12:22

 

 

 

쿠키와 세션의 정의, 사용방법에
대해서 공부해보려 한다.

 

 

 

 

세션과 쿠키의 사용 목적

상태가 없는(stateless or connectionless) 프로토콜인 HTTP에서 상태(연결) 정보를 유지하기 위해서 사용한다.

  • HTTP는 작업을 마치면 연결을 해제하는 방식으로 동작
  • Connection의 지속성이 없으므로 자신에게 접속한 클라이언트를 구분 못함
  • 서로 연관 없는 페이지를 접속할 때 효율적

사용 목적

 

HTTP의 비연결성을 보완하기 위해서 클라이언트와 서버간에 연결(상태)를 유지하기 위한 방법이 필요하다.

 

 

세션과 쿠키

쿠키는 클라이언트의 상태 정보를 클라이언트의 컴퓨터에 저장하고 저장된 정보(텍스트)를 다른 사람 또는 시스템이 볼 수 있는 단점이 있다. 유효시간이 지나면 사라진다.

세션은 서버의 메모리에 클라이언트의 상태정보(Object)를 저장하고 서버가 종료되거나 유효시간이 지나면 사라진다.

 

 

 

쿠키 (Cookie)

쿠키는 서버에서 만들어진 작은 정보의 단위(텍스트 조각)로 서버가 클라이언트에 전송하여 저장한다.

쿠키는 서버에서 생성하고 서버에서 클라이언트의 브라우저로 전송되어 클라이언트의 컴퓨터에 저장된다. 저장된 쿠키는 다시 해당하는 웹페이지에 접속 할 때, 요청정보에 실려 클라이언트에서 서버로 전송된다. 서버는 쿠키를 읽어서 클라이언트를 분별한다.

쿠키는 이름(name)과 값(value)으로 구성된 자료를 저장한다.

쿠키 동작 방법

 

 

쿠키 사용 예제

cookCookie.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
    String cookieName = "myCookie";
    Cookie cookie = new Cookie(cookieName, "apple");
    cookie.setMaxAge(60); //1분
    cookie.setValue("Melon");
    response.addCookie(cookie);
 
%>
쿠키를 만듭니다. <br/>
쿠키를 확인하기 위해서는 <a href="tasteCookie.jsp">여기로</a>
 
</body>
</html>
cs

쿠키를 생성하고 설정한다. 그리고 쿠키를 전송한다.

 

tasteCookie.jsp

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
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
    Cookie[] cookies = request.getCookies();
    if(cookies != null){
        for(int i=0; i<cookies.length; i++){
            if(cookies[i].getName().equals("myCookie")){
%>
                Cookie Name: <%=cookies[i].getName() %><br/>
                Cookie Name: <%=cookies[i].getValue() %><br/>
<%
            }
        }
    }
 
%>
</body>
</html>
cs

쿠키를 읽어오고 정보를 출력한다.

실행 화면

Comments