YoungSoo

HTTP의 특징 본문

CS/HTTP

HTTP의 특징

YoungSooSoo 2023. 2. 8. 17:54

HTTP의 특징

  • 클라이언트가 서버에 요청(Request)를 보내면 서버는 응답(Response)을 보내는 클라이언트 ↔ 서버 구조이다.
  • HTTP의 특성이나 약점을 보완하기 위해 쿠키와 세션을 이용한다.

쿠키(Cookie)

  • 클라이언트 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일이다.
  • 유효 시간을 정할 수 있고, 유효 시간이 종료되기 전까지 브라우저를 재실행해도 인증이 유지된다.
  • 동작 방식
    • 클라이언트에서 요청(Request)
    • 서버에서 쿠키 생성
    • HTTP Header에 쿠키를 포함해서 응답(Response)
    • 클라이언트에서 쿠키 유효 시간까지 보관
    • 유효 시간 전에 요청 시 HTTP Header에 쿠키를 같이 전송

세션(Session)

  • 서버에서 사용자 정보를 관리한다.
  • 접속 시간에 제한을 두어 일정 시간 응답이 없다면 정보가 유지되지 않도록 설정 가능.
  • 동시 접속자 수가 많다면 서버에 과부하를 주어 성능 저하의 요인이 됩니다.
  • 동작 방식
    • 클라이언트에서 서버에 접속할 때 세션 ID를 발급
    • 클라이언트는 세션 ID를 쿠키에 저장.
    • 서버에 요청할 때 쿠키의 세션 ID를 같이 서버에 전달
    • 서버는 세션 ID로 세션에 있는 클라이언트의 정보를 사용
    • 클라이언트의 정보를 통해 서버 요청을 처리하고 클라이언트에게 응답

쿠키(Cookie)와 세션(Session)의 차이

  • 사용자의 정보가 저장되는 위치가 다름.
  • 쿠키는 서버의 자원을 전혀 사용하지 않고 세션은 서버의 자원을 사용.
  • 쿠키는 브라우저에 종료 유무와 상관 없이 저장되지만 세션은 브라우저가 종료되면 삭제됨.
  • 세션은 세션 ID만을 가지고 서버에서 처리하기 때문에 쿠키보다 보안성이 좋음.
  • 쿠키에 정보가 담겨져 있어 서버에서 가져와야하는 세션과 다르게 빠름.

HTTP의 비연결성(Connectionless)

  • 클라이언트가 서버에 요청을 하고 응답을 받으면 바로 TCP/IP 연결을 끊어 연결을 유지하지 않는 것이다.
  • 서버의 자원을 효율적으로 관리하고 많은 요청에도 대응할 수 있다.

HTTP의 무상태성(Stateless)

  • 서버가 클라이언트의 이전 상태를 유지하지 않는다는 특징

HTTP의 상태성(Stateful)

  • 서버가 클라이언트의 이전 상태를 유지한다는 특징