웹 서버(3)

9mond·2023년 8월 18일
0
post-thumbnail
post-custom-banner

1. 필터

1-1. 필터란?

  • 클라이언트로부터의 요청이 백엔드로 가기 전에 가로채서 서버로부터의 응답이 클라이언트로 보내지기 전에 조작하기 위해서 사용

2. 서버 상태코드

2-1. HTTP 상태코드

  • HTTP응답 상태 코드의 목록이다.

  • 100번대 : 정보성. 요청은 받았으며 프로세스를 계속 한다.

  • 200번대 : 성공코드. 요청을 성공적으로 받았으며, 인식했고 수용하였다.

  • 300번대 : 리다이레션. 요청 완료를 위해 추가 작업 조치가 필요하다.

  • 400번대 : 클라이언트 오류. 요청의 문법이 잘못되었거나 요청을 처리할 수 없다.(URL요청이 잘못됨)
    프론트 잘못

    403(Forbidden, 금지됨): 서버가 요청을 거부하고 있다. 예를 들자면, 사용자가 리소스에 대한 필요 권한을 갖고 있지 않다. (401은 인증 실패, 403은 인가 실패라고 볼 수 있음)
    404(Not Found, 찾을 수 없음): 서버가 요청한 페이지(Resource)를 찾을 수 없다. 예를 들어 서버에 존재하지 않는 페이지에 대한 요청이 있을 경우 서버는 이 코드를 제공한다.

  • 500번대 : 서버 오류. 서버가 명백히 유효한 요청에 대해 충족을 실패했다.(URL은 왔으나 URL에 대한 버그)
    백엔드 잘못

    500(내부 서버 오류): 서버에 오류가 발생하여 요청을 수행할 수 없다.

  • 참고 : https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C

3. 상태유지 필요성

3-1. application

  • 하나의 application이 생성되고 소멸될 때까지 계속 유지(서버가 올라가고 꺼질 때까지)
  • 웹 어플리케이션 Context의 정보를 담고 있는 객체
  • 각 어플리케이션 당 오직 하나의 객체만을 생성

3-2. session

  • 하나의 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장

  • 브라우저 종료시 종료(브라우저의 생명주기와 동일)

  • 클라이언트 로그인 정보를 저장하는데 사용

  • 내장 객체로서 브라우저마다 한 개씩 존재하고, 고유한 sessionID 생성 후 정보를 추출한다.

  • 보안성이 좋고 저장 용량의 한계가 거의 없다.

  • 서버에 데이터를 저장하므로 서버에 부하가 걸릴 수 있다.

  • session 값 설정
    -> session.setAttribute("설정한 세션아이디", 값);

  • session 유지 시간 설정
    -> session.setMaxInactiveInterval(30*60); // 30분
    -> session.setMaxInactiveInterval(-1); // 무한대로

  • session에 저장된 값 가져오기
    -> session.getAttrrbute("user_id");

  • session 값 삭제
    -> session.removeAttribute("user_id");
    -> session.invalidate(); // 세선 전체 제거, 무효화

  • 웹 브라우저가 보관하고 있는 데이터로, 웹 서버에 요청을 보낼 떄 쿠키를 헤더에 담아서 전송한다.
  • 클라이언트의 일정 폴더에 정보를 저장하기 때문에 서버의 부하를 줄일 수 있다.
  • 정보가 사용자 컴퓨터에 저장되기 때문에 보안에 위협을 받을 수 있다.
  • 데이터 저장 용량에 제한이 있다. (과자 부스러기처럼 작은 값)
  • 일반 사용자가 브라우저 내의 기능인 "쿠키차단"을 사용하면 무용지물이다.
  • application
    -> 사용범위 : 전역 범위에서 사용하는 저장 공간
    -> 생명주기 : WAS가 시작해서 종료할 때까지
    -> 저장위치 : WAS서버의 메모리

  • session
    -> 사용범위 : 세션 범위에서 사용하는 저장 공간
    -> 생명주기 : session이 시작해서 종료할 때까지
    -> 저장위치 : WAS서버의 메모리

  • cookie
    -> 사용범위 : 웹 브라우저별 지정한 path범주 공간
    -> 생명주기 : 브라우저에 전달한 시간부터 만료 시간까지
    -> 저장위치 : 웹 브라우저 메모리 또는 파일

profile
개발자
post-custom-banner

0개의 댓글