제수기 > django > Session

Eunbi Jo·2025년 1월 31일
0

제수기

목록 보기
81/90
제수기 - 제발 수업 내용을 기억해라 / 단순 수업정리 시리즈

django Session

viewsrequest는 session을 만들 수 있다.

클라이언트가 서버로 request 요청을 보낼 때, session이 생기고, 반환될 때 생명주기가 끝난다.

먼저 로그인 요청 시 처음에 DB에서 정보를 불러오고, 그걸 client의 session에 담아둔다. 이후 페이지를 이동할 때마다 DB에서 불러오지 않고, session에서 정보를 가져와서 빠르게 진행되게 한다.

  • 로그인 정보같은 건 이 페이지에서 저 페이지로 이동을 하더라도 인증 정보가 남아있어야 하는데, 그건 request와 별도로 session이라는 개체로 관리가 된다.

  • request는 요청 응답에 끝나지만 요청이 들어오면 session 객체의 기간을 30분, 5분 이런식으로 지정할 수 있다.

  • 여러번 요청이 들어오고 응답하고 할 때마다 session 정보를 담아주면 다음 요청에서 꺼내쓰고 이런 게 가능해진다.

  • 특정 사용자 정보를 매번 DB에 보낼 게 아니라, 메모리에 있는 session을 활용하면 빠르다.

로그인을 하고

새로고침을 계속 하더라도 정보가 유효하게 남아있다.

  • 코드설명
    app/index/html이 응답하게 한다.

  • 로그인 정보가 있을 경우에 어떤 걸 띄울 지 적어두고, 만약 로그인 정보가 없으면 else를 띄우게 한다.

  • views에서, sesstion의 유저네임 키에 유저네임을 저장하는 코드

  • redirect를 하면

  • 여기로 다시 온다

1분 뒤에는 로그인 해제가 돼있다.

application > cookie > seccionid 세션 값 확인 가능. 저걸 지우면 로그인 해제 됨.

cookie seccionid = 수많은 session 중에 내 것을 찾기 위한 열쇠.

브라우저상에서 seccionid를 지워버리면 내 키가 있다고 요청을 같이 보내야 하는데 키를 잃어버린 것과 같다. 내 정보가 있는 내 세션에 접근을 못한다. 원래는 없어졌네? 새로 만들어줘야겠다. 하고 새로 만들어준다.

삭제나 무효화를 할 수도 있음

  • clear 세션 삭제 : 속성 하나 지우는 거
  • flush 세션 무효화 : 전체 섹션 자체를 무효화

0개의 댓글