프론트엔드 개발
브라우저 쿠키 처음 사용한다면? 본문
전 글에서 쿠키와 세션에 차이점을 알아보았다.
이번에는 직접 함수를 구현하여, Javascript로 쿠키를 읽어보고, 생성 및 삭제를 알아보겠다.
쿠키 저장
function setCookie(name, value, day) {
const date = new Date();
date.setTime(date.getTime() + day * 24 * 60 * 60 * 1000);
document.cookie = name + '=' + value + ';expires=' + date.toUTCString() + ';path=/';
};
쿠키 읽기
function getCookie(name) {
const value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
return value ? value[2] : null;
};
쿠키 삭제
function delCookie(name){
let date = new Date();
date.setDate(date.getDate() - 100);
let Cookie = `${name}=;Expires=${date.toUTCString()}`
document.cookie = Cookie;
}
Practice
(1) 브라우저 쿠키를 넣지 않고, 읽기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="container">Zero Cookie</div>
<script>
function getCookie(name) {
const value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
return value ? unescape(value[2]) : null;
};
const test = getCookie("test");
if (test) {
const insertContents = document.getElementById('container').innerHTML="test";
}
console.log(test); // null
</script>
</body>
</html>
(2) 브라우저 쿠키를 넣고, 읽기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="container">Zero Cookie</div>
<script>
setCookie('test', 'Cookie exist', 1)
const test = getCookie("test");
if (test) {
const insertContents = document.getElementById('container').innerHTML=test;
}
function setCookie(name, value, day) {
const date = new Date();
date.setTime(date.getTime() + day * 24 * 60 * 60 * 1000);
document.cookie = name + '=' + value + ';expires=' + date.toUTCString() + ';path=/';
};
function getCookie(name) {
const value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
return value ? unescape(value[2]) : null;
};
console.log(test); // Cookie exist
</script>
</body>
</html>
Name 속성과 Value 속성
- 데이터를 저장하고 읽는 데 사용하는 속성이기 때문에, 반드시 지정해야 속성이다.
Expires 속성
- Expires 속성은 쿠키의 파기 날짜를 지정하는 속성이다.
- GMT 형식이나 UTC 형식으로 날짜를 입력해야 한다.
- 아무 값도 입력하지 않으면 브라우저가 종료될 때 쿠키가 삭제된다.
Secure 속성
- Secure 속성을 지정하면 해당 쿠키는 SSL을 사용해서만 요청할 수 있다.
Domain 속성
- Domain 속성을 입력하지 않으면 현재 도메인의 경로로 자동 입력된다.
- 페이지 요청과 비교해서 도메인의 경로와 Domain 속성이 일치하지 않으면, 쿠키에 접근하는 것을 막는다.
Path 속성
- Path 속성을 ' / '로 설정하면 도메인 내의 모든 곳에서 접근할 수 있다.
- Path 속성은 일부러 지정하는 경우가 많은데 특정 경로(폴더명)를 설정한다.
- Path 속성은 /폴더/ 로 설정되는데, 폴더 또는 현재 폴더의 하위에서 접근할 수 있다.
출처:
https://wickedmagica.tistory.com/72
'Browser > Browser' 카테고리의 다른 글
Rendering pipeline stage costs (0) | 2021.03.28 |
---|---|
how to browsers work, 브라우저 동작원리 (0) | 2021.03.26 |
쿠키와 세션 차이점 (0) | 2021.03.14 |
브라우저 네트워크 (0) | 2021.02.10 |
Comments