Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 포트폴리오
- jvm
- 취업회고
- JavaScript
- 부트캠프
- 이펙티브자바
- http
- http 완벽 가이드
- 몰디브
- Spring
- 바닐라코딩
- 상속
- HTTP 완벽가이드
- html
- 클로저
- CORS
- css
- 자바
- 신혼여행
- 주간회고
- 메가테라
- Hibernate Reactive
- java
- 2022회고
- 소프트웨어장인정신
- 헤리턴스아라
- leetcode
- 자바스크립트
- SpringSecurity
- til
Archives
- Today
- Total
codingBird
[HTTP 완벽가이드] 11장 클라이언트 식별과 쿠키, 12장 기본 인증 본문
11장. 클라이언트 식별과 쿠키
- 사용자 식별은 무엇을 통해 할 수 있는가? (책에 기술된 5가지)
- IP 주소
- 접속한 브라우저의 종류? 버전? 정보 (User-Agent 헤더)
- 사용자 로그인을 통한 사용자 식별
- URL: 사용자 식별자를 URL에 포함시킨다.
- 쿠키: 쿠키에 사용자 식별자를 포함시켜 응답으로 전달하고, 클라이언트는 차후 요청에 전달받은 쿠키를 포함시킨다.
- 클라이언트 IP 주소가 사용자 식별에 적합하지 않는 이유는 무엇인가?
- 요청이 서버에 전달되는 과정에서 IP 주소가 변경될 수 있음.
- 프록시 서버에서 요청을 받아 프록시 서버가 서버에 요청을 전달하는 경우, 서버는 프록시 서버의 IP주소를 전달받게 되어 클라이언트를 식별할 수 없음.
- 서로 다른 클라이언트라 할지라도 방화벽 등 게이트웨이를 거치는 과정에서 공통된 IP로 전달될 수 있음.
- IP는 컴퓨터를 식별하므로, 다른 사용자가 동일한 컴퓨터로 접속할 경우 동일한 사람으로 식별됨.
- 사용자 IP가 ISP로 인해 변동되는 경우가 있음 (유동 IP)
- 사용자 인증 흐름에 대해 설명해보거라.
- 클라이언트는 사용자 인증이 필요한 리소스를 서버에 요청한다. GET /inus
- 서버는 요청에 리소스 접근에 필요한 인증 정보가 없는 것을 보고 401 Unauthorized 응답을 보낸다.
- 401 응답을 받은 클라이언트는 Authorization 헤더에 인증 정보가 추가된 동일한 요청을 보낸다.
- 서버는 Authorization 헤더의 값을 보고 사용자 인증 및 인가 절차를 거쳐 해당 리소스 접근 권한이 있는지 판단.
- 접근 권한이 없다면 403 Forbidden, 있다면 200 OK와 함께 리소스 본문을 담은 응답을 반환한다.
깜짝 퀴즈: Authorization: Bearer {ACCESS_TOKEN} 에서 Bearer의 의미는?
Bearer 자체는 어떤 특별한 동작을 트리거하거나 하지는 않지만, 보통 Access Token이 Authorization 헤더에 값으로 전달될 때 토큰 앞에 붙여 해당 값이 Access Token임을 나타내는 일종의 약속
- 세션 쿠키와 지속 쿠키는 무엇인가?
- 쿠키는 브라우저에 저장되며, 브라우저 종료 시 삭제 여부를 판단하기 위한 Discard 속성이나, Max-Age, Expires와 같이 유효기한을 나타내기 위한 속성이 포함될 수 있다.
- 위의 헤더들이 포함된 쿠키는 지속 쿠키. 지속 쿠키는 Discard의 조건을 만족하면서 브라우저가 종료되거나, 유효기간이 지났을 때 소멸.
- 반면 세션 쿠키에는 위의 만료 기한을 나타내는 헤더가 포함되지 않으며, 브라우저가 종료될 때 소멸.
- 쿠키 Domain 속성은 어떤 역할을 하는가?
- Domain 속성은 이 Cookie 어떤 도메인이 받을 수 있는지 지정하는 역할이다.
- 예를 들어 Domain이 .inu.com일 경우 super.inu.com은 이 쿠키를 받을 수 있지만, supder.not-inu.com은 이 쿠키를 받지 못 한다.
- 주의: inu.com일 경우, super.inu.com에서도 이 쿠키를 받을 수 없다. 정확히 inu.com 도메인만 이 쿠키를 받을 수 있다.
- 실제로 응답 헤더에서 Cookie를 볼 수 있지만, 브라우저에서 저장하지 않음.
12장. 기본 인증
- BASE64 인코딩과 암호화의 차이는?
- BASE64는 8비트 바이트 3개를 6비트씩 4개로 쪼개어 변환한 것.BASE64 인코딩을 통해 인코딩된 문자열은 디코딩을 통해 원 문자열을 획득할 수 있다.
- 사실상 실제 데이터를 그대로 보내는 것과 같다.
- 모든 문자를 64개의 문자로만 표현.
- 암호화는 알고리즘과 암호화 키를 통해 키를 가지고 있는 사람을 제외한 나머지는 내용을 알 수 없도록 하는 것.
- 따라서 한번 암호화된 문자열은 암호화 키를 가진 사람을 제외하고는 원 문자열을 획득할 수 없다.
'북클럽' 카테고리의 다른 글
[HTTP 완벽가이드] 7장 캐시, 8장 터널, 게이트웨이 (0) | 2023.07.24 |
---|---|
[HTTP 완벽 가이드] 5장 웹서버, 6장 프록시 (0) | 2023.07.21 |
[HTTP 완벽 가이드] 3장 HTTP 메시지, 4장 커넥션 관리 (0) | 2023.07.18 |
[HTTP 완벽 가이드] 1장 HTTP 개관, 2장 URL과 리소스 (0) | 2023.07.18 |
[북클럽] - 소프트웨어 장인 정신 이야기 볼링게임 (0) | 2023.04.22 |