안녕하세요!

FE 개발자 유진주입니다.

CS/네트워크

[컴퓨터네트워크] Chapter2.2 웹과 HTTP(2): 메시지, 쿠키, 캐시

ypearl 2023. 10. 25. 03:05

Chapter2.2 웹과 HTTP(2): 메시지, 쿠키, 캐시

  • HTTP message format
  • 쿠키(cookies)
  • 웹 캐싱(Web caching)

 

HTTP 메시지

- HTTP 메시지

  • HTTP Request: Client -> Server
  • HTTP Response: Server -> Client

HTTP 요청 메시지 포맷

*ASCII

: Control code/charactor(제어문자) + Graphic code/charactor(그래픽문자)

- HTTP Request

- Methods

  • GET: body 정보 없이 객체 요청(필요시 URL에 포함시켜 입력 정보 전달)
    ex) www.somesi te.com/animalsearch?monkey&banana
  • POST: body 입력 정보와 함께 객체 요청(form field로 입력)
  • HEAD: 헤더 정보만 요청 
  • PUT: 파일 업로드
  • DELETE: 파일 삭제

 

HTTP 응답 메시지 포맷

- HTTP Response

  • 200 OK : 요청이 성공했고, 정보가 응답으로 보내짐.
    L request succeeded, requested object later in this msg
  • 301 Moved Permanently: 요청 객체가 영원히 이동
    L requested object moved, new location specified later in this msg (Location:)
  • 400 Bad Request: 서버가 요청을 이해할 수 없음(일반 오류 코드)
    L request msg not understood by server
  • 404 Not Found: 요청 문서가 서버에 존재하지 않음.
    L requested document not found on this server
  • 505 HTTP Version Not Supported

 

 

웹 쿠키(cookies)

- 쿠키 사용 시나리오

* 웹 브라우저를 유니크하게 표현할 수 있는 숫자(쿠키)를 만들어,

서버에 웹 브라우저의 id와 거기에 해당되는 숫자를 저장해

메세지의 헤드라인으로 추가해서 전달!

* 브라우저가 그 다음 동일한 서버로 접속할 때는 

그 서버가 나에게 할당한 쿠키를 달고 request 메세지를 보냄(헤드라인에 포함).

-> 서버는 쿠키를 보고 어떤 브라우저인지, 그 브라우저가 이전에 어떤 행위를 했는지 알 수 있음

(=쿠키는 브라우저에 대한 클라이언트의 상태 정보를 유지할 수 있게 해줌)

 

  • 웹 쿠키 필요성
    - 비상태형 HTTP에 상태형 서비스 구현
  • 웹 쿠키 응용
    - 쇼핑 카트 서비스
    - 상품 추천 서비스
    - 인증 및 인가 서비스
    - 기타
  • 프라이버시 문제
    - 웹 서버에 개인 정보 노출

 

웹 캐시(Web Cache): Proxy server)

- 웹 캐시

  • 원래의 웹 서버들을 대신하여 HTTP 요청 메세지를 처리하는 중간 서버
  • 대상 웹 브라우저의 HTTP 요청 메시지를 웹 캐시로 방향 전환(redirect)
  • 웹 캐시에 요청된 객체가 존재하면 웹 브라우저에 전송
  • 웹 캐시에 요청된 객체가 존재하지 않으면 웹 캐시가 원래의 웹 서버에 요청 메시지를 보내 응답 메시지를 수신
  • 웹 캐시가 웹 서버로부터 수신한 객체를 자신의 서버에 저장하고 웹 브라우저로 전송
  • 주로 Enterprise ISP, Residential ISP에 사용

- 웹 캐시 사용의 장점

  • 응답 지연시간 단축
  • 네트워크 트래픽 감축
  • 보안

- 조건부 GET(Conditional GET)

  • 요청 메시지 헤더에 지정된 시간 이후에 수정된 객체만 다운로드
  • 객체가 웹 캐시에 저장된 이후에 원래의 웹 서버에서 갱신되었는지 확인 가능
  • 웹 캐시에 저장된 객체의 최신화에 유용