멀리 보는 연습

Cookie_쿠키란 언제 어디서 왜 쓰이는 것일까? 본문

Study/JSP&Servlet

Cookie_쿠키란 언제 어디서 왜 쓰이는 것일까?

푸실리 2021. 7. 25. 17:18

 

 

인터넷을 사용해본 경험이 있다면 누구나 들어봤을 용어, 바로 쿠키! 쿠키를 삭제해본 경험은 누구나 한 번씩 있을 것이라고 생각한다. 그런데 이 쿠키가 무엇인지, 언제 어디서 왜 쓰는지 궁금하지 않은가? 오늘은 이 쿠키에 대해서 자세하게 알아보려고 한다. 

 

쿠키에 대해 알아보기 전에 우리는 인터넷에서 사용 가능한 웹 서비스에 대해 알아야 한다. 웹 서비스의 종류는 FTP, HTTP 등이 있는데 이러한 서비스들은 모두 일정한 규칙을 준수해야 한다. 이 일정한 규칙을 바로 프로토콜(표준 인터넷 규약)이라고 한다. 

이 프로토콜의 가장 핵심적인 특징은 바로 '비 연결 지향형'이라는 특징이다. 즉, 클라이언트가 서버에 정보를 요청하면, 웹 서버가 해당 페이지를 클라이언트에게 전송한 후 연결을 끊어버린다. 그러면 클라이언트 입장에서는 서버에 정보를 요청할 때마다 새로운 연결을 해야한다는 뜻이다. 생각만 해도 머리가 아픈 비효율의 끝판왕이다.

 

그래서! 이러한 프로토콜의 단점을 보완하고자 나온 것이 바로 쿠키! 쿠키는 서버가 아닌 클라이언트 컴퓨터의 하드디스크에 사용자의 정보를 저장하기 때문에 서버의 동작에 무리를 주지 않으면서, 사용자의 정보를 유지하면서 사용이 가능하다. 

 

수업시간에 들은 여담을 추가하자면, 이러한 쿠키의 기능을 통해 FBI가 이북리더(?)님의 인터넷 검색 기록을 파헤쳤는데 가장 많이 검색한 단어는 바로 자신의 이름인 '김정은'이었다고 한다. 핵도 아니고 전쟁도 아니고 자신의 이름이라니.. 개인적으로 매우 웃겼던 여담이었다. (관련 기사는 아래 링크 참조)

https://ohfun.net/?ac=article_view&entry_id=14634

 

 

무튼 다시 쿠키 이야기로 돌아오자면, 우리가 로그인을 할 때, 쿠키는 사용자 측에 대한 정보를 보관해둔다. 그러다가 웹 서버의 요청에 의해 그 사용자 정보를 원하는 순간 사용할 수 있게 도와준다.

 

 

 

 

 

** 쿠키 저장 방법

 

1. 쿠키 클래스 객체 생성

<% Cookie cookie = new Cookie("Id", "smhrd"); %>

  

2. Response 내장 객체에 addCookie() 호출

<% response.addCookie(cookie); %>

 

 

** 쿠키 저장 조회

<%
	Cookie[] cookies = request.getCookies();
	for(int i = 0;i<cookies.length;i++){
		out.print("쿠키 이름 : "+URLDecoder.decode(cookies[i].getName()+"<br>"));
		out.print("쿠키 값 : "+URLDecoder.decode(cookies[i].getValue()+"<hr>"));
	}
%>

 

** 쿠키 삭제

<% cookie.setMaxAge(0);  %>

 

 

 

 

 

 

해당 수업 및 예제는 스마트인재개발원에서 진행되었습니다.

www.smhrd.or.kr

Comments