쿠키 와 session 분석

HTTP 는 무 상태 프로 토 콜 입 니 다.따라서 한 사용자 가 여러 요청 을 했 을 때 서버 는 같은 사용자 인지 확인 할 수 없습니다.예 를 들 어 타 오 바 오의 한 페이지 에서 로그 인 작업 을 했 습 니 다.당신 이 상품 페이지 로 넘 어 갔 을 때, 서버 는 당신 이 이미 로그 인 한 상 태 를 어떻게 압 니까?어떻게 한 사용자 의 상태 데 이 터 를 연결 할 수 있 습 니까?따라서 서버 가 사용자 의 상 태 를 기록 해 야 할 때 특정한 메커니즘 으로 구체 적 인 사용 자 를 알 아야 한다.
cookie
쿠키 는 가장 먼저 발생 하 는 해결 방법 이다.쿠키 메커니즘 은 클 라 이언 트 가 상 태 를 유지 하 는 방안 을 채택 합 니 다.쿠키 는 HTTP 프로 토 콜 의 일부분 이 며 이 부분 을 포함해 야 합 니 다.그것 의 처 리 는 다음 과 같은 몇 단계 로 나 뉜 다.
  • 서버 는 클 라 이언 트 에 쿠키 를 보 내 고 HTTP 프로 토 콜 에 규정된 set - cookie 헤드 작업 을 통 해 형식의 데이터 요 소 를 만 듭 니 다.
  • 브 라 우 저 는 쿠키 를 저장 합 니 다.
  • 브 라 우 저가 요청 할 때마다 쿠키 를 서버 에 보 냅 니 다.

  • 쿠키 와 관련 된 매개 변수:
  • path: 쿠키 가 영향 을 미 치 는 경 로 를 표시 하고 이 경로 와 일치 해 야 이 쿠키 를 보 냅 니 다.
  • expires 와 maxAge: 브 라 우 저 에 이 쿠키 가 언제 만 료 되 는 지 알려 줍 니 다. expires 는 UTC 형식 시간 이 고 maxAge 는 쿠키 가 얼마나 지나 면 만 료 되 는 상대 시간 입 니 다.이 두 옵션 을 설정 하지 않 으 면 session 쿠키 가 발생 합 니 다. session 쿠키 는 transient 이 고 사용자 가 브 라 우 저 를 닫 으 면 삭 제 됩 니 다.일반적으로 session 을 저장 하 는 sessionid。
  • secure: secure 값 이 true 일 때 쿠키 는 HTTP 에서 유효 하지 않 고 HTTPS 에서 유효 합 니 다.
  • httpOnly: 브 라 우 저 는 스 크 립 트 가 document. cookie 를 조작 하여 쿠키 를 변경 하 는 것 을 허용 하지 않 습 니 다.일반적으로 이것 을 true 로 설정 해 야 xss 공격 으로 쿠키 를 받 지 않도록 할 수 있 습 니 다.

  • 쿠키 는 사용 자 를 편리 하 게 하 는 장면 에서 사용 할 수 있 습 니 다. 다음 에 로그 인 할 때 계 정 을 다시 입력 하고 싶 지 않 습 니 다. 어떻게 합 니까?이 정 보 는 쿠키 에 쓸 수 있 습 니 다. 사 이 트 를 방문 할 때 사이트 페이지 의 스 크 립 트 는 이 정 보 를 읽 을 수 있 습 니 다. 자동 으로 사용자 이름 을 기입 해 주 고 사용 자 를 편리 하 게 할 수 있 습 니 다.쿠키 는 매우 편리 하지만 쿠키 를 사용 하 는 데 큰 단점 이 있 습 니 다. 쿠키 의 모든 데 이 터 는 클 라 이언 트 에서 수정 할 수 있 고 데이터 가 위조 되 기 쉬 우 며 일부 중요 한 데 이 터 는 쿠키 에 저장 할 수 없습니다. 또한 쿠키 의 데이터 필드 가 너무 많 으 면 전송 효율 에 영향 을 줄 수 있 습 니 다.이 문제 들 을 해결 하기 위해 세 션 이 생 겼 다.
    session
    session 메커니즘 은 서버 쪽 에서 상 태 를 유지 하 는 방안 을 사용 합 니 다. 그 데 이 터 는 서버 쪽 에 보관 되 어 있 으 며 파일, 데이터 베이스, 메모리 에 넣 을 수 있 습 니 다.session 의 운영 은 session 을 통 해id, 클 라 이언 트 에 session 저장진행클 라 이언 트 에 session 저장id 의 메커니즘 은 다음 과 같 습 니 다.
  • cookie
  • URL 재 작성
  • 폼 숨 김 영역
  • 쿠키 가 요청 되 었 을 때 서버 는 먼저 이 클 라 이언 트 의 요청 에 session 이 포함 되 어 있 는 지 확인 합 니 다.id, 포함 되 어 있 으 면 이전에 이 클 라 이언 트 에 session 을 만 들 었 음 을 설명 합 니 다. 서버 는 session 에 따라id. 이 session 을 검색 하여 사용 하고 데이터 저장 과 수정 을 진행 합 니 다.검색 이 되 지 않 으 면 세 션 을 새로 만 듭 니 다.클 라 이언 트 요청 에 session 이 포함 되 지 않 으 면id, 이 클 라 이언 트 에 session 을 만 들 고 이 session 과 연 결 된 session id 를 생 성 합 니 다. 이 sessionid 는 이번 응답 에서 클 라 이언 트 에 게 되 돌려 저 장 됩 니 다.

  • 그러나 쿠키 는 인위적으로 금 지 될 수 있 으 며, 쿠키 가 금 지 될 때 session 을id 전송 서버.자주 사용 되 는 기술 은 URL 재 작성, 폼 숨 김 영역 이 라 고 합 니 다.
  • URL 재 작성 은 sessionid 는 URL 경로 뒤에 직접 추 가 됩 니 다.우 리 는 주소 표시 줄 에서 이런 문자열 을 볼 수 있다.
  • sessionid=KWJHUG6JJM65HS2K6
    
  • 폼 숨 김 영역 은 서버 가 폼 을 자동 으로 수정 하고 폼 을 제출 할 때 session 을 추가 할 수 있 도록 숨겨 진 필드 를 추가 하 는 것 입 니 다.id 전송 서버.예 를 들 어

  • 따라서 요약: Session 은 서버 에 저 장 된 데이터 구조 로 사용자 의 상 태 를 추적 하 는 데 사 용 됩 니 다. 이 데 이 터 는 클 러 스 터, 데이터 베이스, 파일 에 저장 할 수 있 습 니 다.쿠키 는 클 라 이언 트 가 사용자 정 보 를 저장 하 는 메커니즘 으로 사용자 의 일부 정 보 를 기록 하 는 동시에 Session 을 실현 하 는 방식 이다.

    좋은 웹페이지 즐겨찾기