ASP.NET 4.0
[ASP.NET] 쿠키
메리
2022. 1. 3. 14:38
쿠키는 웹 브라우저가 사용하는 메모리나 웹 사용자의 하드 디스크에 저장되는 상태 정보 파일을 말한다.
쿼리 스트링과 같이 크기 제한이 있으며, 일부 웹 브라우저에서는 쿠키를 사용할 수 없다. 컴퓨터에 저장된 쿠키는 사용자가 직접 접근할 수 있기 대문에 정보의 훼손이 일어날 수 있다. 이러한 이유 때문에 비밀을 보장해야할 경우나 큰 용량의 데이터에서는 쿠키를 잘 사용하지 않는다.
쿠키를 사용하려면 먼저 using문을 사용하여 System.Net 네임스페이스를 import 해야한다.
using System.Net;
쿠키를 이용하여 클라이언트에 상태 정보를 저장하려면 Response 객체의 Cookies 컬렉션을 다음과 같이 설정해야 한다.
Response.Cookies["KeyWord"].Value = Server.UrlEncode("모바일 웹");
Response.Cookies["KeyWord"].Expires = DateTime.Now.AddSeconds(10);
Expires는 쿠키의 만료 기간을 설정한다.
웹 사용자가 쿠키가 설정된 사이트에 있는 페이지를 요청할 경우, 웹 브라우저는 페이지 요청과 함께 쿠키 정보를 서버에 저달한다. 서버는 해당 쿠키에 저장된 정보를 참조하여 상태를 관리하게 된다. 서버로 전달된 쿠키는 Request 객체의 Cookies 컬렉션을 통해 읽어들인다.
string keyword;
keyword = Request.Cookies["KeyWord"].Value;
HttpCookie 클래스를 사용하면 좀 더 구조적으로 쿠키 정보를 저장할 수 있다. HttpCookie 객체를 이용하여 값을 설정하고 참조할 대는 Value 속성을 사용하지 않는 것에 유의한다.
HttpCookie cookie = new HttpCookkie("FileSearch");
cookie["KeyWord"] = Server.UrlEncode("모바일 웹");
cookie.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(cookie);
HttpCookie 클래스를 사용하여 쿠키 값을 읽어오는 방법은 다음과 같다.
HttpCookie cookie = Request.Cookies["FileSearch"];
string key = Server.UrlDecode(cookie["KeyWord"]);
string filetype = Server.UrlDecode(cookie["FileType"]);
한편, 긴 만료 기간을 갖는 쿠키를 삭제하는 유일한 방법은 만료 기간이 지난 시점으로 쿠키를 다시 설정하는 것이다.
HttpCookie cookie = new HttpCookie("FileSearch");
cookie.Expires = DateTime.Now.AddDays(-1);