웹 복습(4)

넙데데맨·2022년 5월 25일
0

HTTP 특징

  • 클라이언트-서버 구조
    - 클라이언트는 서버에 요청 / 서버는 결과로 응답
    • 클라이언트는 UI 그리는 것에 집중, 서버는 비즈니스 로직
  • stateless, connectionless 무상태, 비연결성
  • HTTP 메시지
  • 단순함, 확장 가능

stateless

stateful 서버가 클라이언트의 이전 상태를 보존한다는 의미

  • 유지해야하기 때문에 같은 서버가 계속 유지되어야 한다.

stateless 반대로 상태를 보존하지 않는다

  • 클라이언트의 요청에 어느 서버가 응답해도 상관이 없음.
  • 서버 증설이 쉽다

Connectionless

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

한계

연결/해제에 대한 오버헤드가 발생한다.

해결

HTTP 지속 연결 - 일정 시간 사용하지 않을 시 연결 해제

세션 트래킹

stateless인 HTTP 프로토콜에서 웹페이지들을 연결하기 위한 기능

  • hidden 태그URL Rewriting
    - 웹 페이지가 많을 시 정보를 계속 전송해야한다
    • GET 방식의 단점
  • 쿠키
  • 세션

쿠키

웹 페이지 사이 공유 정보를 클라이언트 PC에 저장해 놓고 필요할 때 사용할 수 있게 하는 매개 역할

  • 저장 용량 제한
  • 보안 취약
  • 클라이언트 브라우저에서 사용 유무 설정 가능
  • 도메인당 쿠키가 만들어짐

클라이언트에 파일로 정보를 저장하는 기능

  • 쿠키를 삭제하거나 설정 값 종료 시 소멸
  • 최초 접속 시 서버로 전성
  • 로그인 유무, 팝업창 제한 등등

브라우저 메모리에 생성

  • 최초 접속 시 서버로 전송되지 않음
  • 사이트 접속 시 Session 인증 정보 유지
  • Session 기능과 같이 사용됨

쿠키 기능 실행 과정

  1. 브라우저로 사이트 접속
  2. 서버가 정보 저장 쿠키 생성 후 브라우저로 전송
  3. 브라우저는 서버가 보낸 쿠키 저장
  4. 재접속 시 서버가 브라우저에게 쿠키 전송 요청
  5. 브라우저가 쿠키 정보를 서버에 넘겨주고 서버는 넘겨받은 정보로 작업

쿠키 API

HttpServletResponseaddCookie() 브라우저에 쿠키 전송 후 저장
HttpServletRequestgetCookie() 쿠키를 서버로 가져오기

javax.servlet.http.Cookie
setMaxAge() 유효기간 설정 메소드

  • 해당 메소드의 인자에 따라 Persistence, Session 쿠키 종류 결정

세션

웹페이지 사이 공유 정보를 서버에 저장해 두고 웹 페이지들을 매개해주는 방법 서버의 메모리에 생성되어 정보 저장

특징

  • 브라우저 세션 연동은 세션 쿠키 사용
  • 쿠키보다 보안에 유리
  • 브라우저당 하나의 세션 생성
  • 유효 시간을 가짐

세션 기능 실행과정

  1. 브라우저로 사이트 접속
  2. 서버는 브라우저에 대한 세션 객체 생성
  3. 생성된 세션 ID 클라이언트 브라우저에 응답
  4. 브라우저는 서버로 받은 ID를 브라우저가 사용하는 메모리의 세션 쿠키에 저장
  5. 브라우저가 재접속 하면 세션 쿠키에 저장된 세션 ID 전달
  6. 서버는 세션 ID를 통해 해당 세션에 접근해 작업

세션 API

HttpServletRequestgetSession() 메소드 호출해서 생성

profile
차근차근

0개의 댓글