세 션 작업 원리 및 운영 절 차 를 깊이 분석 하 다.

1.session 의 개념 과 특징
session 개념:컴퓨터,특히 네트워크 응용 에서'세 션 제어'라 고 합 니 다.Session 대상 은 특정 사용자 세 션 에 필요 한 속성 과 설정 정 보 를 저장 합 니 다.말하자면 세 션 은 서버 쪽 을 유지 할 수 있 는 데이터 저장 기술 이다.session 은 주로 다음 과 같은 특징 이 있 습 니 다.
session 에 저 장 된 위 치 는 서버 에 있 습 니 다.
session 은 일반적으로 쿠키 와 함께 사용 해 야 합 니 다.사용자 브 라 우 저가 쿠키 를 사용 하지 않 으 면 URL 재 작성 으로 session 의 저장 기능 을 실현 할 수 있 습 니 다.
단순히 session 을 사용 하여 사용자 의 답장 정 보 를 저장 하면 사용자 수가 많 을 때 session 파일 의 수량 이 많 고 session 조회 가 느 린 문제 가 존재 합 니 다.
본질 적 으로:session 기술 은 백 엔 드 를 바탕 으로 데이터 베이스 와 다른 임시 저장 기술 이다.
2.왜 session 을 사용 합 니까?
현재 우리 가 사용 하고 있 는 인터넷 응용 층 프로 토 콜 은 기본적으로 HTTP 와 HTTPS 를 바탕 으로 하 는 것 으로 그 자체 가 무상 태 이 며 요청 과 응답 만 책임 집 니 다.나 는 서버 에 내 가 무엇 을 필요 로 하 는 지 알려 주 었 고,서버 는 나 에 게 상응하는 자원 을 되 돌려 주 었 다.추가 처리 가 없 으 면 서버 는 당신 이 누 군지 모 르 고 누가 당신 과 관련 된 내용 을 보 여 주 는 지 에 따라 더 이상 보 여줄 수 없습니다.
HTTP 프로 토 콜 이 처음에 이렇게 디자인 된 데 는 역사적 인 이유 가 있 었 다.그 당시 의 인터넷 은 학술 교류 에 많이 사용 되 었 고 글 정보의 표현 과 같은 일 에 만 사용 되 었 기 때문에 지금 처럼 풍부 하고 다 채 롭 지 못 했다.그래서 그 당시 배경 에서 HTTP 프로 토 콜 이 이렇게 디자인 된 것 도 그 장면 에 맞 았 다.그러나 인터넷 응용 이 점점 광범 위 해 지면 서 응용 형식 도 점점 많아 졌 다.우리 의 웹 응용 은 간단 한 정 보 를 제공 하 는 데 그 치지 않 고 사용자 가 로그 인 할 수 있어 야 한다.포럼 에 글 을 올 리 고 쇼핑 몰 에서 물건 을 살 수 있다.사용자 의 상 태 를 기록 할 수 있 는 HTTP 프로 토 콜 이 필요 합 니 다.지금 우리 가 알 고 있 는 세 션 의 유래 다.
3.session 의 작업 원리
  • 사용자 가 서버 를 처음 요청 할 때 서버 에서 sessionid
  • 를 생 성 합 니 다.
  • 서버 에서 생 성 된 sessionid 를 클 라 이언 트 에 게 되 돌려 주 고 set-cookie
  • 를 통 해
  • 클 라 이언 트 가 sessionid 를 받 으 면 쿠키 에 저장 합 니 다.클 라 이언 트 가 다시 서버 에 접근 할 때 이 sessionid
  • 를 가 져 옵 니 다.
  • 서버 에서 클 라 이언 트 로부터 요청 을 다시 받 았 을 때 sessionid 가 존재 하 는 지 확인 하고 존재 하지 않 으 면 sessionid 가 1,2 절 차 를 반복 합 니 다.존재 하면 서버 의 session 파일 을 옮 겨 다 니 며 이 sessionid 와 대응 하 는 문 서 를 찾 습 니 다.파일 의 키 값 은 sessionid 이 고 현재 사용자 의 정보
  • 입 니 다.
  • 이후 요청 은 모두 이 세 션 ID 를 교환 하고 상태 있 는 세 션 을 진행 합 니 다.
  • 4.session 과 cookies 의 차이
    1.데이터 저장 위치 가 다 릅 니 다.
    쿠키 데 이 터 는 고객 의 브 라 우 저 에 저장 되 고 session 데 이 터 는 서버 에 저 장 됩 니 다.e79fa5e98193e4b893e5b19e31333366306536
    2.안전 정도 가 다르다.
    쿠키 는 안전 하지 않 습 니 다.다른 사람 은 로 컬 에 저 장 된 COOKIE 를 분석 하고 COOKIE 사 기 를 할 수 있 습 니 다.안전 을 고려 하여 session 을 사용 해 야 합 니 다.
    3.성능 사용 정도 가 다르다:
    session 은 서버 에 일정 시간 저 장 됩 니 다.방문 이 증가 하면 서버 의 성능 을 비교적 점용 할 수 있 으 며 서버 의 성능 을 줄 이 는 데 있어 쿠키 를 사용 해 야 합 니 다.
    4.데이터 저장 크기 가 다 릅 니 다.
    하나의 쿠키 로 저 장 된 데 이 터 는 4K 를 초과 할 수 없습니다.많은 브 라 우 저 는 한 사이트 에 최대 20 개의 쿠키 를 저장 하 는 것 을 제한 하고 session 은 서버 에 저장 하 며 브 라 우 저 는 이에 제한 이 없습니다.

    5.세 션 메커니즘 이 다르다
    session 세 션 메커니즘:session 세 션 메커니즘 은 서버 엔 드 메커니즘 으로 해시 표 와 유사 한 구 조 를 사용 하여 정 보 를 저장 합 니 다.
    cookies 세 션 메커니즘:쿠키 는 서버 가 로 컬 컴퓨터 에 저 장 된 작은 텍스트 이 고 모든 요청 에 따라 같은 서버 로 보 냅 니 다.웹 서버 는 HTTP 레이 블 을 사용 하여 클 라 이언 트 에 쿠키 를 보 냅 니 다.클 라 이언 트 단말기 에서 브 라 우 저 는 쿠키 를 분석 하고 로 컬 파일 로 저장 합 니 다.이 파일 은 같은 서버 에서 온 모든 요청 을 이 쿠키 에 자동 으로 연결 합 니 다.
    5.session 의 생명주기
    세 션 이 언제 적 용 됩 니까?
    Sessinon 은 사용자 가 처음 서버 에 접근 할 때 만 듭 니 다.JSP,Servlet 등 프로그램 에 접근 할 때 만 Session 을 만 들 수 있 습 니 다.HTML,IMAGE 등 정적 자원 에 만 접근 하고 Session 을 만 들 지 않 으 며 request.getSession(true)을 호출 하여 강제로 Session 을 만 들 수 있 습 니 다.
    세 션 이 언제 효력 을 상실 합 니까:
    1.서버 는 오랫동안 활동 하지 않 은 세 션 을 서버 메모리 에서 지 웁 니 다.이 때 세 션 은 실 효 됩 니 다.Tomcat 에서 Session 의 기본 실효 시간 은 20 분 입 니 다.세 션 이 활동 하지 않 을 때 부터 계산 하면 세 션 이 계속 활동 하면 세 션 이 만 료 되 지 않 습 니 다.이 세 션 이 방문 되 지 않 았 을 때 부터 시간 을 잽 니 다.세 션 이 방문 되면 0 을 계산 합 니 다.
    2.Session 의 invalidate 방법 호출
    HttpSession session = request.getSession();
    session.invalidate();//이 request 의 모든 session 을 취소 합 니 다.
    3.session 의 실효 시간 설정
    a)웹.xml 중

    30

    b)프로그램 에서 수 동 으로 설정
    session.setMaxInactiveInterval(30 * 60);//단 위 를 초 로 설정 하고-1 로 설정 하면 기한 이 만 료 되 지 않 습 니 다.request.getSession().setMaxInactiveInterval(-1);// c)tomcat 도 session 만 료 시간 을 수정 할 수 있 습 니 다.server.xml 에서 context 를 정의 할 때 다음 과 같은 정 의 를 사용 합 니 다.
    docBase="/home/httpd/html/livsorder"   defaultSessionTimeOut="3600"
    isWARExpanded="true"   
    isWARValidated="false" isInvokerEnabled="true"   isWorkDirPersistent="false"/>
    4.브 라 우 저 를 닫 으 면 session 이 실 효 됩 니 다.
    6.session 의 성능 병목
    또 하 나 는 세 션 데이터 저장 입 니 다.일반적으로 명확 한 설정 이 없 으 면 대부분의 웹 프레임 워 크 는 Session 데 이 터 를 메모리 에 저장 합 니 다.웹 애플 리 케 이 션 사용자 수가 많 지 않다 면 문제 가 되 지 않 습 니 다.그러나 사용자 수가 많 으 면 메모리 가 부족 한 일이 발생 할 수 있 습 니 다.
    이것 은 매우 정상 적 인 것 입 니 다.메모리 용량 은 매우 귀중 합 니 다.모든 사용자 의 Session 데이터 가 100 K 라 고 가정 하면 1 만 명의 사용자 가 1G 의 저장 공간 을 차지 할 것 입 니 다.만약 에 Session 데이터 정리 체제 도 마침 느 리 면 메모리 가 쉽게 채 워 집 니 다.이것 은 비교적 큰 병발 량 의 사 이 트 를 설계 할 때 세 션 의 저장 방식 을 고려 해 야 한다.예 를 들 어 하 드 디스크 파일 시스템 이나 데이터 베이스 에 저장 하 는 것 이다.그래서 웹 애플 리 케 이 션 을 개발 할 때 사용자 수가 많 으 면 이런 의식 이 필요 합 니 다.또한 세 션 을 메모리 에 넣 으 면 웹 서버 가 재 부팅 되면 모든 세 션 상태 가 상황 에 따라 사용자 체험 에 어느 정도 영향 을 줄 수 있 습 니 다.
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기