일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- AWS
- OG tag
- Expo
- yolo
- 커스텀 데이터 학습
- 코드업
- google 로그인
- C++
- 2021 제9회 문화공공데이터 활용경진대회
- JPA
- Spring
- STT
- Loss Function
- Spring Boot
- google login
- react native
- google cloud
- marksense.ai
- matplotlib
- oauth
- javascript
- html
- 순환참조
- idToken
- YOLOv5
- pandas
- skt fellowship 3기
- 졸프
- @Transactional
- 양방향 매핑
Archives
- Today
- Total
민팽로그
웹의 인증 및 인가/쿠키와 세션 본문
인증 및 인가
- 인증(Authentication): 사용자의 신원을 확인하는 행위
- 인가(Authorization): 사용자 권한을 확인하는 행위
즉, 아이디와 비밀번호를 입력을 통해 로그인하여 본인임을 확인하는 과정이 인증, 로그인 후 사용자의 역할에 따라 권한을 부여하는 것이 인가이다. 인가의 예로 웹 카페같은 온라인 커뮤니티에서 회원 등급 별 사용할 수 있는 게시판이 다른 것을 들 수 있다.
쿠키와 세션
HTTP는 상태를 저장하지 않아 같은 클라이언트가 요청했는지 알 수 없음
-> 쿠키와 세션은 HTTP에 상태 정보를 유지하기 위해 사용됨. 즉, 쿠키와 세션을 통해 서버에서 클라이언트 별로 인증 및 인가를 할 수 있음
쿠키
- 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일
- 크롬 브라우저의 개발자도구(F12)를 열어 확인 가능: Application > Storage > Cookies
- 구성 요소: Name, Value, Domain, Path, Expires
Name: 쿠키를 구별하기 위해 사용되는 키(중복 불가)
Value: 쿠키의 값
Domain: 쿠키가 저장된 도메인
Path: 쿠키가 사용되는 경로
Expires: 쿠키 만료기한(만료기간 후 삭제됨)
세션
- 서버에 일정시간 동안 클라이언트의 상태를 유지하기 위해 사용
- 서버에서 클라이언트 별로 세션ID를 부여한 후 클라이언트 별 필요한 정보를 서버에 저장
- 서버에서 생성한 세션ID는 클라이언트의 쿠키값(세션 쿠키)으로 저장되어 클라이언트 식별에 사용됨
쿠키와 세션 비교
쿠키 | 세션 | |
설명 | 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일 | 서버에 일정 기간동안 클라이언트의 상태를 유지하기 위해 사용 |
저장 위치 | 클라이언트(웹 브라우저) | 웹 서버 |
사용 예 | 사이트 팝업의 "오늘 다시보지 않기" 정보 저장 | 로그인 정보 저장 |
만료 시점 | 쿠키 저장 시 만료시점 설정 가능(브라우저 종료 시에도 유지 가능) | 아래 조건 중 하나가 만족될 경우 만료 1. 브라우저 종료 2. 클라이언트 로그아웃 시 3. 서버에 설정한 유지기간까지 해당 클라이언트의 재요청이 없는 경우 |
용량 제한 | 브라우저 별 다름(크롬 기준) - 하나의 도메인 당 180개 - 하나의 쿠키 당 4KB |
세션 저장소 크기 내에서 제한 없음 |
보안 | 취약: 클라이언트에서 쿠키 정보를 쉽게 변경, 삭제 및 가로채기 당할 수 있음 | 비교적 안전: 서버에 저장되기 때문에 상대적으로 안전함 |
'📚소소한 스터디' 카테고리의 다른 글
[python 에러 해결] SSL: CERTIFICATE_VERIFY_FAILED (0) | 2021.10.11 |
---|---|
연구과제 참고 목록 (0) | 2021.10.01 |
[HTML] form, fieldset , input 태그 (0) | 2021.09.06 |
URI와 URL (0) | 2021.09.05 |
자주 사용하는 리눅스 명령어 (0) | 2021.08.24 |
Comments