본문 바로가기
프로그래밍/개발지식

세션이 만료되었습니다 해결방법 (세션과 쿠키)

by 감웅 2021. 5. 21.
반응형

세션이 만료되었습니다 해결방법

안녕하세요! 감웅입니다. 인터넷을 사용하다 보면 '세션이 만료되었습니다.'라는 문제가 종종 발생하는데요. 아무것도 안 했는데 세션이 만료됐다고 하니 당황스러우실 겁니다. 오늘은 세션에 대해서 쉽게 설명드리고 세션이 왜 만료되는지 그리고 세션이 만료되었을 때 해결방법에 대해서 포스팅하겠습니다.

 



세션이 만료되었습니다



 

 

세션과 쿠키

세션(Session)이란 간단히 말해서 브라우저를 이용하는 사용자의 정보를 뜻합니다. 이 말 한마디로 이해가 잘 안 되시죠? 예시로 쉽게 설명해드릴게요.

예를 들어, 네이버에서 감웅이라는 유저가 로그인하면 감웅에게 온 메일, 쪽지 같은 사용자 정보가 노출이 됩니다. 이렇게 페이지에 감웅의 정보가 노출되는 이유는 네이버 서버에 로그인한 유저의 '세션 값'이 있기 때문입니다. 앞에서 세션 값은 사용자의 정보라고 했죠. 그럼 말을 바꿔볼까요? 

 

로그인을 하면 해당 서버에 유저의 정보(세션)가 보관된다.


그럼 세션에는 어떤 정보가 있을까요? 기본적으로 사용자의 아이디와 같은 정보가 들어있습니다. 서버는 세션에 있는 아이디 정보를 이용해 서버 내의 데이터베이스에서 해당 유저의 데이터를 조작할 수 있죠.

근데.. 잘 생각해 봅시다. 네이버 서버에는 감웅이라는 유저의 세션만 있을까요? 절대 그렇지 않죠. 지금 이 순간에도 네이버 서버에는 많은 유저의 세션이 있습니다. 그럼 네이버 서버가 어떻게 감웅이 사용하는 브라우저를 인식해서 화면에 감웅에 대한 정보만 쏙쏙 뿌려주는 것일까요? 그에 대한 해답은 바로 '쿠키'에 있습니다.

쿠키(Cookie)란 쉽게 말해 브라우저에 저장된 서버 관련 정보를 뜻합니다. 쿠키 중에는 서버에 있는 수많은 세션들을 '식별'하기 위한 세션 키값에 대한 정보도 있는데요. 학창 시절 선생님이 수많은 학생들을 구분하기 위해 학생에게 '명찰'이나 '이름표'를 붙이듯이 서버는 수많은 브라우저(클라이언트)들을 구분하기 위해 로그인 시 세션을 식별할 수 있는 키값을 쿠키에 저장해 해당 브라우저에게 전달합니다

예시로 돌아와서 네이버에 로그인한 감웅이라는 유저가 네이버 블로그를 가든 카페를 가든 글을 쓰든 로그인 상태가 유지되는 이유는 브라우저가 서버에게 각각의 페이지를 요청할 때, '쿠키'값을 전달해 주기 때문입니다. 

 

로그인 상태가 유지되려면 브라우저에는 '쿠키'가 존재하여야 된다.

 

참고로 쿠키값은 크롬에서 F12(개발자 도구)를 누르신 후 Application > Storage > Cookies에서 보실 수 있습니다. 아래 화면은 제가 티스토리 로그인했을 경우 세션 키값이 저장된 쿠키를 보여주고 있습니다. 


 

감웅 티스토리 로그인시 세션 키값을 가진 쿠키



 

 

세션이 만료되었습니다 해결방법

이제 문제를 해결해봅시다. 문제는 원인은 크게 두 가지 중 하나입니다. 쿠키의 값에 문제 있는 경우 또는 서버 세션에 문제가 있을 경우. 일어날 수 있는 각 상황을 제시하고 해결방법을 적어보겠습니다. 

 

상황 1. 브라우저에서 쿠키를 삭제

어떤 이유로 브라우저에서 쿠키가 삭제된다면, 서버에 있는 해당 사용자의 세션정보를 식별할 수 없으므로 로그인 상태가 끊기게 됩니다. 하지만 쿠키는 브라우저를 종료하지 않는 이상 삭제되지 않으니 이 케이스가 원인인 경우는 거의 없을 겁니다. 만약, 발생하다면 그냥 다시 로그인하면 됩니다.

 

상황 2. 서버 세션 만료

반대로 브라우저가 아닌 서버에서는 일정 시간이 지나면 세션 값이 만료됩니다. 그 이유는 서버에서는 수많은 사용자의 세션 값을 담아야 되는데 담을 수 있는 용량에는 한계가 있으니, 일정 시간 활동이 없는 유저의 세션은 지워버리게 되죠.

대표적인 예로, 사이트를 오래 내버려 두다가 뭔가를 하려고 하면 세션이 만료되었으니 로그인을 하라고 alert창이 뜹니다. 이 케이스가 원인인 경우가 종종 있을 겁니다. 이 경우에는 간단히 다시 로그인을 함으로써 해결이 됩니다.

상황 3. 쿠키 정보 이상
가끔가다 알 수 없는 이유로 쿠키값이 변질되거나 하는 경우가 있을 수 있습니다. 예를 들어 서버에서 쿠키를 브라우저로 올바르게 보냈는데, 도중에 이 값이 변질된다면 로그인 상태가 풀립니다. 이 경우에는 브라우저에 있는 쿠키를 삭제 후 재 로그인을 시도하면 해결이 됩니다. 귀찮으시면 단순히 모든 브라우저를 종료한 후 다시 실행해서 로그인하는 방법이 있습니다.

쿠키 삭제 방법은 다음과 같습니다.

 


크롬(Chrome)

 

크롬 쿠키삭제



엣지(Microsoft Edge)

엣지 쿠키삭제

 

상황 4. 서버 이상

단순히 서버가 맛탱이가 가서 로그인이 풀릴 수 있습니다. 아마 이경우에는 페이지 자체도 보이지 않을 거예요. 이 경우는 서버가 복구될 때까지 기다려야 합니다.

 


이상으로 세션 만료 문제가 일어날 수 있는 각 상황에 대해서 알아보고 그에 대한 해결방법을 살펴보았습니다. 부디, 해당 포스팅이 조금이나마 도움이 됐길 바랍니다.

 

 

 

같이 보면 좋은 포스팅

https://gamung.tistory.com/21

 

HTTP HTTPS 차이 (feat. 보이스피싱 사이트)

HTTP HTTPS 차이 안녕하세요, 감웅입니다! HTTP와 HTTPS 차이. 모르는 분들이 보기에는 글자가 비슷해서 그게 그거인 것처럼 보일 텐데요. 이 두 가지의 개념을 알기만 해도 내 컴퓨터의 보안에 있어

gamung.tistory.com

https://gamung.tistory.com/20

 

HTML 파일 여는법 (HTML 파일이 안 열릴 때)

HTML 파일 여는법 (HTML 파일이 안 열릴 때) 안녕하세요! 감웅입니다. 웹 관련 개발자나 퍼블리셔가 아닌 일반 사람들이 html 확장자를 가진 파일을 보면 생소하실 텐데요. 오늘은 html 파일이 안 열릴

gamung.tistory.com

 

반응형

'프로그래밍 > 개발지식' 카테고리의 다른 글

컴맹도 이해하는 안드로이드 생명주기  (0) 2020.03.22

댓글