Session id 는 Cookie 를 통 해 전송 방법 및 코드 참 고 를 실현 합 니 다.
주의해 야 할 것 은 세 션 의 개념 은 특정한 클 라 이언 트, 특정한 서버 엔 드 와 중단 되 지 않 는 작업 시간 을 포함해 야 한 다 는 것 이다.A 사용자 와 C 서버 가 연결 을 만 들 때 있 는 세 션 은 B 사용자 와 C 서버 가 연결 을 만 들 때 있 는 세 션 과 는 다른 세 션 입 니 다.
session 의 작업 원리
(1) 세 션 이 처음 사용 되 었 을 때 유일한 표 지 는 로 컬 쿠키 에 저 장 됩 니 다.
(2) 우선 session 사용start () 함수, PHP 는 session 창고 에서 저 장 된 session 변 수 를 불 러 옵 니 다.
(3) PHP 스 크 립 트 를 실행 할 때 session 사용 하기register () 함수 등록 session 변수.
(4) PHP 스 크 립 트 가 실 행 될 때 삭제 되 지 않 은 session 변 수 는 로 컬 일정 경로 의 session 라 이브 러 리 에 자동 으로 저 장 됩 니 다. 이 경 로 는 php. ini 파일 의 session. save 를 통 해path 지정, 다음 웹 페이지 를 탐색 할 때 불 러 올 수 있 습 니 다.
2、HttpSession session = request.getSession();
상황 에 따라 이 코드 가 session 을 만들어 야 할 때 서버 는 session 을 만 들 때마다 대응 하고 싶 은 session 이 있 습 니 다.id, 그리고 서버 에서 이 sessionid 번 호 는 쿠키 형식 으로 클 라 이언 트 (브 라 우 저) 에 게 답장 하고 다음 에 같은 사용자 가 방문 할 때 이 session 을 가 져 옵 니 다.ID 로 왔어요.
이렇게 하면 문제 가 발생 할 수 있 습 니 다. 클 라 이언 트 (브 라 우 저) 를 닫 을 때 브 라 우 저 를 잘못 닫 으 면 쿠키 가 존재 하지 않 습 니 다.
예 를 들 어 흔히 볼 수 있 는 카 트 기능 은 쇼핑 을 할 때 브 라 우 저 를 닫 았 습 니 다. 이 사용자 가 다음 에 다시 방문 할 때 지난번 기록 은 존재 하지 않 습 니 다.
그래서 session 을 만 들 때 만 들 수 있 는 sessionid 를 설정 한 쿠키 에 저장 합 니 다. 그러면 브 라 우 저 를 닫 을 때 짧 은 시간 안에 다시 브 라 우 저 를 엽 니 다. 마지막 탐색 기록 은 다음 과 같 습 니 다.
다음 코드 를 통 해 실현 할 수 있 습 니 다:
1
2
3
4
5
6
7
HttpSession session = request.getSession();
session.setAttribute(
"String1"
,
"Object1"
);
String session_id = session.getId();
Cookie cookie =
new
Cookie(
"JSESSIONID"
, session_id);
//session_id name JSESSIOINID
cookie.setPath(
" "
);
cookie.setMaxAge(
30
*
60
);
// 30
response.addCookie(cookie);
www.169it.com
3. 여기에 또 다른 문제 가 생 겼 습 니 다. 왜 제 가 위의 코드 에 Cookie 의 생명 주 기 를 설정 하고 브 라 우 저 를 다시 열 었 을 때 이 Cookie 는 그대로 있 었 습 니까?세 션 을 만 들 고 기본적으로 쿠키 로 클 라 이언 트 에 답장 할 때 브 라 우 저 를 닫 았 다가 다시 열 었 을 때 쿠키 는 존재 하지 않 습 니까?
Cookie 의 수명 주기 에 대한 질문:
쿠키 가 만 료 시간 을 설정 하지 않 으 면 이 쿠키 의 수명 주기 가 브 라 우 저 세 션 기간 임 을 나타 내 며 브 라 우 저 창 을 닫 으 면 쿠키 가 사라 집 니 다.이 생명 기 는 세 션 탐색 기의 쿠키 로 세 션 쿠키 라 고 합 니 다.세 션 쿠키 는 일반적으로 하 드 디스크 에 저장 되 지 않 고 메모리 에 저 장 됩 니 다.
만 료 시간 이 설정 되면 브 라 우 저 는 쿠키 를 하 드 디스크 에 저장 하고 닫 은 후에 다시 브 라 우 저 를 엽 니 다. 이 쿠키 들 은 설 정 된 만 료 시간 을 초과 할 때 까지 유효 합 니 다.하 드 디스크 에 저 장 된 쿠키 는 두 개의 IE 창 과 같은 브 라 우 저 프로 세 스 간 에 공유 할 수 있 습 니 다.메모리 에 저 장 된 쿠키 에 대해 서 는 브 라 우 저 마다 처리 방식 이 다르다.
4. 일부 사 이 트 는 세 션 ID (세 션 ID) 를 사용 하여 사용자 의 방문 을 추적 하고 모든 사용자 가 사 이 트 를 방문 할 때 독특한 세 션 ID 를 생 성하 여 URL 에 추가 합 니 다.검색엔진 거미 의 방문 때마다 새로운 사용자 로 여 겨 집 니 다. URL 에 서로 다른 Session ID 를 추가 합 니 다. 그러면 검색엔진 거미 가 방문 할 때마다 받 는 같은 페이지 의 URL 이 다 르 고 뒤에 다른 Session ID 를 가지 고 있 습 니 다.이것 도 가장 흔히 볼 수 있 는 거미 함정 중의 하나 다.검색엔진 은 이러한 자주 발생 하 는 Session ID 를 만나면 문자열 이 Session ID 인지 정상 적 인 매개 변수 인지 판단 하려 고 시도 합 니 다. Session ID 를 성공 적 으로 판단 하면 Session ID 를 제거 하고 정상 적 인 URL 을 수록 할 수 있 습 니 다.그러나 수록 을 꺼 리 거나 세 션 ID 가 다른 URL 을 여러 개 수록 하 는 경우 도 종종 있 는데 내용 은 똑 같 아 복제 콘 텐 츠 가 많이 형성 되 는데 이 두 가지 상황 은 사이트 최적화 에 모두 불리 하 다.
본문 출처: Session id 구현 Cookie 를 통한 전송 방법 및 코드 참조
다음으로 전송:https://www.cnblogs.com/besty/p/3951357.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.