쿠키와 세션의 동작에 대해서 질문드립니다.
694
작성한 질문수 5
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요. 제가 궁금한 건, 만약 하나의 클라이언트에서 여러 쿠키가 생성되었을 경우가 궁금합니다.
강의에서 "클라이언트가 서버로 요청을 보낼 때 마다 쿠키를 보낸다"라고 하셨는데, 이게 요청한 도메인과 쿠키의 도메인이 일치하고, 쿠키 경로와 일치하는 쿠키만 서버로 전송이 되나요? 전송된다면 해당 경로의 모든 쿠키가 전송되는걸까요? 쿠키가 전송되는 범위?가 궁금합니다ㅠ
클라이언트에서 쿠키를 보내던 아이디 비밀번호를 전송하던, 누군가 아이디 비밀번호에 대한 유효성 검사나, 해당 쿠키는 어떤 세션id와 일치하는지 확인해서 유저 정보를 파악 한다고 생각하는데 이는 모두 서버에서 하는 것일까요?
이전에 발급 받은 쿠키가 있다면, 서버에 값을 전송하지 않고 쿠키를 전송한다고 공부했습니다. 그럼 결국에 클라이언트에서 "이 리소스는 이전에 쿠키를 생성해서 저장이 되어있어!"처럼 클라이언트에서 식별을 해야하는데 클라이언트에서 어떻게 판단을 하고 서버로 리소스를 보낼지, 쿠키를 보낼지 판단을 하나요?
마지막으로, 쿠키와 세션은 모두 http의 무상태 단점을 보완하기 위해 쓰이는 것이라고 생각합니다. 물론 보안적인 측면도 있겠지만요!
하지만 이 둘의 차이는 클라이언트에서 관리하냐 서버에서 관리하냐의 차이로 이해하고 있는데 맞을까요?
생각이 정리 되어있지 않아 약간 복잡하게 질문글 올렸지만 답변 주신다면 정말 감사하겠습니다!
답변 1
1
안녕하세요. dydghksfe766님
쿠키 전송 범위 쿠키가 전송되는 범위는 요청한 도메인과 쿠키의 도메인이 일치하고, 요청한 경로가 쿠키의 경로와 일치할 때 입니다. 이 조건에 맞는 쿠키가 서버로 전송됩니다.
유효성 검사 및 사용자 확인 사용자 인증 과정이나 쿠키와 세션 ID의 일치 여부 확인은 대부분 서버에서 이루어집니다. 서버는 클라이언트로부터 전달받은 정보를 토대로 적절한 응답을 내려줍니다.
클라이언트에서의 쿠키 및 리소스 전송 판단 클라이언트에서 쿠키를 전송하는 것은 웹 브라우저가 자동으로 처리합니다. 브라우저는 저장된 쿠키 중 해당 요청에 적합한 쿠키를 찾아 서버로 전송합니다. 그러므로 개발자가 따로 식별 작업을 할 필요는 없습니다.
쿠키와 세션의 차이 맞습니다. 쿠키와 세션은 모두 HTTP의 무상태성을 보완하기 위해 사용되며, 주요 차이점은 저장 위치와 관리 방식입니다. 쿠키는 클라이언트 측(주로 웹 브라우저)에서 저장 및 관리되며, 세션은 서버 측에서 저장 및 관리됩니다. 이로 인해 쿠키는 상대적으로 보안성이 떨어지는 반면, 세션은 서버에서 관리되기 때문에 상대적으로 보안성이 높습니다.
감사합니다.
0
답변 정말 감사합니다! 여러 검색을 통해 알아보니, DB에 저장하기 전, 비밀번호를 해싱해서 실제 비밀번호가 아닌 해싱값을 DB에 저장하는 경우도 있다고 하더라구요. 이렇게 해서 보안성을 높일 수 있고,이후 클라이언트가 로그인을 시도할 시, 비밀번호를 클라이언트에서 바로 해싱해서 서버로 전달하고 이 값으로 매칭해서 인증을 하는 경우도 있다고 하던데 이런 경우도 있을까요???
캐시무효화시 그냥 no-store만 넣어되지 않나요?
0
71
2
API의 헤더와 바디에 대한 문의 입니다.
0
72
2
수정폼과 수정
0
70
1
쿠키에 대해 질문드려요!
0
90
2
서버에서 캐시 검증 헤더를 직접 처리해야 하나요?
0
90
1
http api get, post 멱등
0
41
1
컬렉션의 개념
0
49
1
시작라인에 들어가는 요청 대상 경로는 상대 경로 아닌가요?
0
54
1
PATCH 는 PUT처럼 멱등이여야 하지 않나요?
0
82
1
리소스 질문드립니다
0
56
1
IP 패킷 질문입니다.
0
59
1
html from, http api
0
76
2
브라우저 캐시가 60초 유효하다는게 무슨 뜻일까요
0
120
1
stateless 무상태 예제가 생각났는데. 저가 생각 한게 맞는지 궁금합니다.
0
100
1
URI 및 URL 질문, 왜 자바(스프링)에서는 이렇게 나누었는지?
0
142
1
host와 port
0
107
1
tcp/ip는 연결을 유지? 아니면 유지하지 않음?
0
146
1
다음 강의 커리큘럼 질문!!
0
131
2
캐시 개념에 대해서 설명하시지는 않으시는건가요?
0
114
1
클라이언트가 patch, delete 요청 시 알아야 하는 url
0
91
1
html form 형태 전송시 new, edit 등 컨트롤 리소스를 사용하는 이유
0
168
2
비 연결성(connectionless) 강의에서 질문입니다~
0
140
1
PATCH를 사용하지 못할 때 왜 POST?
0
163
2
협상과 우선순위3 질문드립니다.
1
130
1





