• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

쿠키와 세션의 동작에 대해서 질문드립니다.

23.04.24 00:11 작성 조회수 485

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

안녕하세요. 제가 궁금한 건, 만약 하나의 클라이언트에서 여러 쿠키가 생성되었을 경우가 궁금합니다.

  1. 강의에서 "클라이언트가 서버로 요청을 보낼 때 마다 쿠키를 보낸다"라고 하셨는데, 이게 요청한 도메인과 쿠키의 도메인이 일치하고, 쿠키 경로와 일치하는 쿠키만 서버로 전송이 되나요? 전송된다면 해당 경로의 모든 쿠키가 전송되는걸까요? 쿠키가 전송되는 범위?가 궁금합니다ㅠ

  2. 클라이언트에서 쿠키를 보내던 아이디 비밀번호를 전송하던, 누군가 아이디 비밀번호에 대한 유효성 검사나, 해당 쿠키는 어떤 세션id와 일치하는지 확인해서 유저 정보를 파악 한다고 생각하는데 이는 모두 서버에서 하는 것일까요?

  3. 이전에 발급 받은 쿠키가 있다면, 서버에 값을 전송하지 않고 쿠키를 전송한다고 공부했습니다. 그럼 결국에 클라이언트에서 "이 리소스는 이전에 쿠키를 생성해서 저장이 되어있어!"처럼 클라이언트에서 식별을 해야하는데 클라이언트에서 어떻게 판단을 하고 서버로 리소스를 보낼지, 쿠키를 보낼지 판단을 하나요?

  4. 마지막으로, 쿠키와 세션은 모두 http의 무상태 단점을 보완하기 위해 쓰이는 것이라고 생각합니다. 물론 보안적인 측면도 있겠지만요!

    하지만 이 둘의 차이는 클라이언트에서 관리하냐 서버에서 관리하냐의 차이로 이해하고 있는데 맞을까요?

생각이 정리 되어있지 않아 약간 복잡하게 질문글 올렸지만 답변 주신다면 정말 감사하겠습니다!

답변 1

답변을 작성해보세요.

1

안녕하세요. dydghksfe766님

  1. 쿠키 전송 범위 쿠키가 전송되는 범위는 요청한 도메인과 쿠키의 도메인이 일치하고, 요청한 경로가 쿠키의 경로와 일치할 때 입니다. 이 조건에 맞는 쿠키가 서버로 전송됩니다.

  2. 유효성 검사 및 사용자 확인 사용자 인증 과정이나 쿠키와 세션 ID의 일치 여부 확인은 대부분 서버에서 이루어집니다. 서버는 클라이언트로부터 전달받은 정보를 토대로 적절한 응답을 내려줍니다.

  3. 클라이언트에서의 쿠키 및 리소스 전송 판단 클라이언트에서 쿠키를 전송하는 것은 웹 브라우저가 자동으로 처리합니다. 브라우저는 저장된 쿠키 중 해당 요청에 적합한 쿠키를 찾아 서버로 전송합니다. 그러므로 개발자가 따로 식별 작업을 할 필요는 없습니다.

  4. 쿠키와 세션의 차이 맞습니다. 쿠키와 세션은 모두 HTTP의 무상태성을 보완하기 위해 사용되며, 주요 차이점은 저장 위치와 관리 방식입니다. 쿠키는 클라이언트 측(주로 웹 브라우저)에서 저장 및 관리되며, 세션은 서버 측에서 저장 및 관리됩니다. 이로 인해 쿠키는 상대적으로 보안성이 떨어지는 반면, 세션은 서버에서 관리되기 때문에 상대적으로 보안성이 높습니다.

감사합니다.

답변 정말 감사합니다! 여러 검색을 통해 알아보니, DB에 저장하기 전, 비밀번호를 해싱해서 실제 비밀번호가 아닌 해싱값을 DB에 저장하는 경우도 있다고 하더라구요. 이렇게 해서 보안성을 높일 수 있고,이후 클라이언트가 로그인을 시도할 시, 비밀번호를 클라이언트에서 바로 해싱해서 서버로 전달하고 이 값으로 매칭해서 인증을 하는 경우도 있다고 하던데 이런 경우도 있을까요???

네 말씀하신 것 처럼 진행하는 경우도 있습니다. :)

중요한 것은 어떤 경우라도 서버에서 검증해야 합니다.

감사합니다.