My footsteps
토요스터디 / 12주차 본문
🏷️ 11주차
[복습]
1 웹 서버란?
: 정적컨텐츠를 나타내는 웹 (ex; html,css,js)
2 WAS란?
: 동적컨텐츠를 나타내는 웹 (ex; jsp,php..)
실제로 서버를 통해 정보들을 주고받고 하는 행위들을 통칭하여 '동적'이라고 표현
3 웹 서버와 WAS의 차이가 무엇인가요?
: 웹서버는 컨텐츠를 보여주는것이고 was는 그걸 실제로 실행시켜준다
- 세션이란?
세션은 어떤 ‘단위’인데 간혹 잘못된 정보를 써논 초보 블로그들이 많아요. 어떤 ‘단위'입니다!!
즉, 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라고 한다.
세션 특징
1. 웹 서버에 웹 컨테이너의 상태를 유지하기 위한 정보를 저장한다.
2. 웹 서버의 저장되는 쿠키(=세션 쿠키)
3. 브라우저를 닫거나, 서버에서 세션을 삭제했을때만 삭제가 되므로,
쿠키보다 비교적 보안이 좋다.
4. 저장 데이터에 제한이 없다.(서버 용량이 허용하는 한...)
5. 각 클라이언트 고유 Session ID를 부여한다.
Session ID로 클라이언트를 구분하여 각 클라이언트 요구에 맞는 서비스 제공
- HTTP의 특징 때문에 인증(로그인) 상태가 휘발되는데요.
쿠키와 세션을 이용한다면 어떻게 이 상태를 유지할 수 있을지 생각해보기.
이건 인터넷에 검색하는게 아니라 생각해보기입니다~
ChatGPT 답변:
HTTP 프로토콜은 Stateless 프로토콜이기 때문에 클라이언트와 서버 간의 이전 상호작용에 대한 정보를 유지하지 않습니다. 즉, 클라이언트가 로그인을 한 후 다른 페이지로 이동하면 인증 정보가 사라지는 것이 보통입니다.
하지만, 쿠키와 세션을 이용하여 이러한 문제를 해결할 수 있습니다. 쿠키는 클라이언트 측에 정보를 저장하고, 세션은 서버 측에 정보를 저장하여 상태 정보를 유지할 수 있습니다.
쿠키는 클라이언트에 저장되는 작은 데이터 파일로, 클라이언트 측에서 로그인한 사용자를 식별하고 인증 정보를 유지할 수 있습니다. 서버는 로그인한 사용자에게 쿠키를 발급하고, 이후 클라이언트가 요청을 보낼 때마다 쿠키를 함께 전송받아 인증 정보를 확인합니다.
하지만, 쿠키는 보안상의 이유로 중요한 정보를 저장하는 것은 적합하지 않습니다. 따라서, 세션은 쿠키를 이용하여 세션 ID를 클라이언트 측에 저장하고, 서버 측에는 세션 ID와 연결된 상태 정보를 저장합니다. 클라이언트는 쿠키를 이용하여 세션 ID를 전송하고, 서버는 해당 세션 ID에 해당하는 상태 정보를 찾아 클라이언트에게 응답합니다.
이렇게 세션을 이용하면 클라이언트와 서버 간의 상태 정보를 유지하면서도 보안적인 측면에서 안전합니다. 또한, 세션은 쿠키와 달리 만료 시간을 설정할 수 있으므로, 보안성을 높일 수 있습니다.
- 세션을 이용한 인증, 인가의 장점, 단점은 어떻게 될까요?
ChatGPT
세션(Session)을 이용한 인증과 인가는 웹 애플리케이션에서 많이 사용되는 방법 중 하나입니다. 다음은 세션을 이용한 인증, 인가의 장점과 단점입니다.
장점:
1. 보안성: 세션은 쿠키에 저장된 정보를 이용하기 때문에, 정보가 클라이언트 측에 저장되는 쿠키보다는 보안적입니다.
2. 세션 유지: 세션은 클라이언트와 서버 간의 상태 정보를 유지하기 때문에, 로그인 상태나 장바구니 등의 정보를 유지할 수 있습니다.
3. 사용자 맞춤형 페이지: 세션을 이용하면 로그인한 사용자에게 맞춤형 페이지를 제공할 수 있습니다.
단점:
1. 서버 리소스 소모: 세션을 이용하면 서버에서 클라이언트 간의 세션 정보를 유지해야 하기 때문에 서버 리소스를 많이 사용할 수 있습니다.
2. 서버 부하: 동시에 많은 사용자가 로그인하여 세션을 유지하면, 서버 부하가 높아질 수 있습니다.
3. 세션 만료: 세션은 일정 시간이 지나면 만료되기 때문에, 사용자가 일정 시간 동안 이용하지 않으면 로그아웃되는 등의 불편함이 있을 수 있습니다.
따라서, 세션을 이용한 인증과 인가는 보안성과 사용자 맞춤형 페이지 등의 장점이 있지만, 서버 리소스 소모와 서버 부하, 세션 만료 등의 단점이 있을 수 있습니다. 이를 고려하여 웹 애플리케이션에서 세션을 이용할지 여부를 결정해야 합니다.
'Develop > 곤부📙' 카테고리의 다른 글
토요스터디 / 13주차 (0) | 2023.05.20 |
---|---|
git 키워드 요약 (0) | 2023.05.17 |
컬렉션 / 제네릭 예습 (0) | 2023.05.11 |
토요스터디 / 11주차 (0) | 2023.05.06 |
프로그래머스(코딩 기초 트레이닝) 코테스터디 / 2 (0) | 2023.05.03 |