쿠키 - 사용

5008 단어 cookie
쿠키 작성
브라우저는 사용자 시스템의 쿠키를 관리합니다.쿠키는 HttpResponse 개체를 통해 브라우저에 전송되며, 이 개체는 공개적으로Cookies라고 불리는 집합이다.HttpResponse 대상을 Page 클래스의 Response 속성으로 접근할 수 있습니다.브라우저에 보낼 모든 쿠키는 이 컬렉션에 추가되어야 합니다.쿠키를 만들 때는 NameValue를 지정해야 합니다.각 쿠키는 나중에 브라우저에서 쿠키를 읽을 때 인식할 수 있도록 고유한 이름이 있어야 합니다.쿠키는 이름별로 저장되기 때문에 같은 이름으로 두 개의 쿠키를 명명하면 쿠키 중 하나가 덮어쓰일 수 있다.
Response.Cookies["userName"].Value = "patrick";

Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);



HttpCookie aCookie = new HttpCookie("lastVisit");

aCookie.Value = DateTime.Now.ToString();

aCookie.Expires = DateTime.Now.AddDays(1);

Response.Cookies.Add(aCookie);


다수치 쿠키
사용자 이름 및 마지막 액세스 시간과 같은 값을 쿠키에 저장할 수 있습니다.또한 하나의 쿠키에 여러 이름/값 쌍을 저장할 수도 있습니다.이름/값은 서브키로 대칭됩니다.(하위 키 레이아웃은 URL의 질의 문자열과 유사합니다.)예를 들어 userName과 lastVisit라는 두 개의 단독 쿠키를 만들지 말고 userInfo라는 쿠키를 만들 수 있습니다. 이 쿠키는 두 개의 키userName과 lastVisit를 포함합니다.
여러 가지 이유로 하위 키를 사용할 수 있습니다.우선 쿠키에 관련되거나 유사한 정보를 배치하는 것이 편리하다.또한 모든 정보가 하나의 쿠키에 있기 때문에 유효기간과 같은 쿠키 속성은 모든 정보에 적용된다.다른 유형의 정보에 대해 다른 만료 날짜를 지정하려면 별도의 쿠키에 정보를 저장해야 합니다.
또한 하위 키가 있는 쿠키는 쿠키 파일의 크기를 제한하는 데 도움이 됩니다.앞에서 언급한 바와 같이 쿠키는 보통 4096바이트로 제한되며 사이트당 최대 20개의 쿠키를 저장할 수 있다.리본 키가 있는 단일 쿠키를 사용하면 사이트에 할당된 20개의 제한을 초과하지 않는다.또한 하나의 쿠키는 약 50자의 시스템 오버헤드(유효기간 정보 저장 등)를 차지하고, 여기에 저장된 값의 길이를 합치면 4096바이트에 가까운 한계를 가진다.5개의 개별 쿠키가 아닌 5개의 키를 저장하면 개별 쿠키의 시스템 오버헤드를 약 200바이트 절감할 수 있습니다.
쿠키 범위 제어
기본적으로 한 사이트의 모든 쿠키는 클라이언트에 함께 저장되며 모든 쿠키는 해당 사이트에 대한 요청과 함께 서버에 전송됩니다.즉, 한 사이트의 각 페이지에서 해당 사이트의 모든 쿠키를 받을 수 있습니다.하지만 두 가지 방법으로 쿠키의 범위를 설정할 수 있습니다.
  • 쿠키의 범위를 서버의 폴더로 제한합니다. 이를 통해 쿠키를 사이트의 애플리케이션으로 제한할 수 있습니다.
  • 범위를 도메인으로 설정하여 도메인의 하위 도메인에서 쿠키에 액세스할 수 있는 도메인을 지정할 수 있습니다.
  • appCookie.Path = "/Application1";

  •  
    쿠키의 도메인 범위 제한

  • 기본적으로 쿠키는 특정 도메인에 연결됩니다.예를 들어, 사이트가 www.contoso인 경우com, 사용자가 사이트에 페이지를 요청하면 작성한 쿠키가 서버로 전송됩니다.(특정 경로 값이 있는 쿠키는 포함되지 않을 수 있습니다.)사이트에 하위 도메인(예: contoso.com, sales.contoso.com 및 support.contoso.com)이 있으면 쿠키를 특정 하위 도메인과 연관시킬 수 있습니다.이 작업을 수행하려면 쿠키Domain 속성 Response를 설정합니다.Cookies["domain"].Domain = "support.contoso.com";
     
    쿠키 읽기
    Request.Cookies["userName"].Value
    HttpCookie aCookie = Request.Cookies["userName"];
    subkeyName = Server.HtmlEncode(aCookie.Values.AllKeys[j]);            subkeyValue = Server.HtmlEncode(aCookie.Values[j]);
    쿠키의 값을 가져오기 전에 쿠키가 있는지 확인합니다.이 쿠키가 존재하지 않으면 예외NullReferenceException가 발생합니다.
    브라우저마다 쿠키를 저장하는 방식이 다르기 때문에 같은 컴퓨터의 다른 브라우저가 서로의 쿠키를 읽을 필요가 없다.예를 들어, Internet Explorer를 사용하여 페이지를 테스트한 다음 다른 브라우저를 사용하여 테스트하면 Internet Explorer에 저장된 쿠키를 찾을 수 없습니다.즉, 쿠키는 브라우저 간에 사용할 수 없습니다.
    쿠키 삭제:
    삭제할 쿠키와 이름이 같은 새 쿠키를 만들고 쿠키의 만료 날짜를 현재 날짜보다 빠른 날짜로 설정합니다.브라우저가 쿠키의 만료 날짜를 확인하면 이미 만료된 쿠키가 브라우저에서 제거됩니다.
     
     
  • 좋은 웹페이지 즐겨찾기