CS/[도서] 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접

[네트워크] 5-6. (1) 응용 계층 - HTTP의 응용

annovation 2025. 8. 21. 22:03

쿠키(Cookie)

 

💡쿠키(Cookie)

  • 서버가 생성하여 브라우저(클라이언트)에 저장시키는 '이름=값' 형태의 작은 데이터

 

💡쿠키(Cookie)가 필요한 이유

  • HTTP는 기본적으로 무상태(stateless) 프로토콜이기 때문에 각 요청(request)과 응답(response)은 독립적이고, 서버가 기본적으로 클라이언트의 이전 요청이나 상태를 저장하지 않는다.
  • 그러나 웹 서비스(응용 계층) 사용자별 상태를 유지해야하는 경우가 있다.
    1. 인증/로그인 상태 유지
    2. 사용자 맞춤 기능 제공
      • 장바구니
      • 클릭한 뉴스피드 추천
      • 다크모드 설정 등
  • 그래서 등장한 것이 쿠키(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의 역할

  1. 암호화 : 데이터가 노출되지 않도록 암호화
  2. 인증 : 서버 신뢰 보장 (인증서)
  3. 무결성 : 데이터 변조 방지

💡TLS 핸드셰이크 과정 (단순화)

  1. 클라이언트 → ClientHello (지원 암호화 방식, 랜덤 값 전송)
  2. 서버 → ServerHello + 인증서 (공개키 포함)
  3. 키 교환 (세션 키 생성)
  4. 서로 확인 후 암호화된 통신 시작

출처

https://www.hanbit.co.kr/store/books/look.php?p_code=B3079890360

 

이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접

기술 면접과 실무에 필요한 CS 지식, 한 권으로 끝내자!

www.hanbit.co.kr