req.headers.cookie; 여기다 값을 넣으면
클라이언트 <=> 서버간의 데이터 전송을 하게 해준다.
res.writeHead( 200, {객체 } ) 요청 성공!! 알려주는 것.
두번째 인자로 객체를 넣는다.
{'Set-cookie': 'mycookie=test'}
쿠키설정 : 쿠키내용(키 값)
서버에서 클라이언트쪽으로 => 데이터를 보낸다.
'Set-cookie' 사용.
개발자 도구!!!!확인!!!!!!
Headers => Set-Cookie : mycookie=test
브라우저에 쿠키 저장하고
쿠키 확인 방법
Application => Cookies 탭에서 저장된 쿠키를 확인할 수 있다.
==================================================
if ( req.url.startsWith('/login') ) { // 로그인에 있는 쿼리스트링 (1)
const { query } = url.parse(req.url); // 쓸 수 있게 파싱해서 (2)
const { name } = qs.parse(query); //파싱해서 (2)
const expires = new Date( ) ; 현재시간으로부터 5분뒤 설정
expires.setMinutes(expires.getMinutes( ) + 5);
res.writeHead( 302, {
Location : '/' ,
'Set-Cookie' : 'name=${encodeURIComponent(name); // 다시 쿠키로 저장 (3)
EXPIRES =${expires.toGMTString()};
HttpOnly;
Path=/'
};
res.end( );
}
else if (cookies.name) {
res.writeHead(200, { 'Content-Type: 'text/html; charset=utf-8'});
res.end( '${cookies.name} 님 안녕하세요);
}
else {
fs.readFile('./server4.html' , (err, data) => {
res.end(data);
});
}
*302는 임시 이동, 브라우저에게 Location에 적힌 페이지로 이동 하라는 뜻.
302, 원하는 location으로 이동
Location: '/' 해당하고 싶은 루트로 적용시키면 됨.
클라이언트
로그인이라는 주소로, 뒤에 해당 이름 쿼리스트링 붙여서, 서버로 요청이 간다.
서버 (클라이언트에서 request 받음)
받은 로그인, 쿼리스트링 설정 하고(1)=> 파싱 후(2) => 다시 쿠키로 저장 후 (3)=> 클라이언트로 넘어간다.
클라이언트에게 해당 이름을 쿠키로 삼으라는 명령과 함께 응답을 보낸다.
'Set-cookie'
서버에서 클라이언트쪽으로 데이터를 보낼때 사용
name=${encodeURIComponent(name)} 본인이 입력한 name
EXPIRES =${expires.toGMTString()}; 쿠키 유효시간 설정
유효시간이 지나면 쿠키가 알아서 무효가 된다.
Httponly; => 자바스크립트에서 쿠키를 접근 할 수 없다.
Path =/ 해당 경로에서 유효함.
ex) /post, /post/1
EXPIRES =${expires.toGMTString()}; 쿠키 유효시간
유효시간이 지나면 쿠키가 알아서 무효가 된다.
const expires = new Date( ) ; 현재시간으로부터 5분뒤
expires.setMinutes(expires.getMinutes( ) + 5);
'TIL > Node JS' 카테고리의 다른 글
pug, ejs , html, express(sendFile), for in , for of (0) | 2019.11.03 |
---|---|
writehead(404) & status(404), status(500) && express (0) | 2019.11.03 |
예외 처리 process.on('uncaughtException', (err) => { } ); (0) | 2019.10.21 |
on === addEventListener, new eventEmitter( ), emit ( ) (0) | 2019.10.20 |
기타 fs 메서드 (0) | 2019.10.20 |
comment