쿠키(Cookie)
💡쿠키(Cookie)
- 서버가 생성하여 브라우저(클라이언트)에 저장시키는 '이름=값' 형태의 작은 데이터
💡쿠키(Cookie)가 필요한 이유
- HTTP는 기본적으로 무상태(stateless) 프로토콜이기 때문에 각 요청(request)과 응답(response)은 독립적이고, 서버가 기본적으로 클라이언트의 이전 요청이나 상태를 저장하지 않는다.
- 그러나 웹 서비스(응용 계층) 사용자별 상태를 유지해야하는 경우가 있다.
- 인증/로그인 상태 유지
- 사용자 맞춤 기능 제공
- 장바구니
- 클릭한 뉴스피드 추천
- 다크모드 설정 등
- 그래서 등장한 것이 쿠키(cookie)
- 서버가 응답 헤더로 작은 데이터를 내려주면, 브라우저가 저장해 두었다가 해당 서버로 다시 요청할 때 자동으로 보내 줌
- 결과 : 무상태인 HTTP 위에서 세션 유지·개인화·A/B·추적 같은 상태ful 동작을 구현
💡동작 방식
- 서버가 쿠키 생성 → 응답 헤더(Set-Cookie)에 담아 클라이언트로 전송
- 클라이언트(브라우저)는 쿠키 저장 → 이후 같은 서버에 요청 시 자동으로 Cookie 헤더에 쿠키를 담아 전송
- 서버는 쿠키를 읽어 사용자 식별/세션 유지 가능
💡속성
- Name=Value : 기본 구조
- Domain : 쿠키가 적용될 도메인
- Path : 특정 경로에 대해서만 쿠키 전송
- Expires / Max-Age : 쿠키의 유효 기간
- Secure : HTTPS 연결에서만 전송
- HttpOnly : 자바스크립트 접근 차단, 오직 HTTP 요청/응답에서만 사용 → 보안 강화
캐시 (HTTP Cache)
💡캐시 (HTTP Cache)
- 자원(이미지, HTML 등)을 임시 저장하여 불필요한 재요청을 줄이는 기술
콘텐츠 협상 (Content Negotiation)
💡콘텐츠 협상 (Content Negotiation)
- 같은 URI라도 여러 형태의 표현(Representation)이 가능 → 서버와 클라이언트가 협상
💡대표적인 헤더
- Accept : 선호하는 미디어 타입 (예: text/html, application/json)
- Accept-Language : 언어 선호 (예: ko, en-US)
- Accept-Encoding : 압축 방식 (예: gzip, br)
GET /index.html HTTP/1.1
Host: example.com
Accept-Language: ko
Accept: text/html
HTTPS (SSL/TLS 보안)
💡HTTPS (SSL/TLS 보안)
- HTTP는 암호화를 지원하지 않음 → 보안 문제(중간자 공격, 도청 등)
- 이를 해결하기 위해 HTTPS (HTTP + SSL/TLS) 사용
💡TLS의 역할
- 암호화 : 데이터가 노출되지 않도록 암호화
- 인증 : 서버 신뢰 보장 (인증서)
- 무결성 : 데이터 변조 방지
💡TLS 핸드셰이크 과정 (단순화)
- 클라이언트 → ClientHello (지원 암호화 방식, 랜덤 값 전송)
- 서버 → ServerHello + 인증서 (공개키 포함)
- 키 교환 (세션 키 생성)
- 서로 확인 후 암호화된 통신 시작
출처
https://www.hanbit.co.kr/store/books/look.php?p_code=B3079890360
이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접
기술 면접과 실무에 필요한 CS 지식, 한 권으로 끝내자!
www.hanbit.co.kr
'CS > [도서] 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 카테고리의 다른 글
| [네트워크] 5-7. 프록시와 안정적인 트래픽 (3) | 2025.08.26 |
|---|---|
| [네트워크] 5-5. (2) HTTP 메서드와 상태 코드 (3) | 2025.08.18 |
| [네트워크] 5-5. (1) 응용 계층 - HTTP의 기초 (4) | 2025.08.13 |
| [네트워크] 5-4. (1) 전송 계층 - TCP와 UDP (2) | 2025.08.11 |
| [네트워크] 5-3. (1) 네트워크 계층 - IP (3) | 2025.08.07 |