programing tip

쿠키와 세션의 차이점은 무엇입니까?

itbloger 2020. 6. 10. 22:37
반응형

쿠키와 세션의 차이점은 무엇입니까?


웹 개발 교육을 받고 있으며 JSP서블릿 에 대해 배우고 있습니다. 나는 약간의 지식을 가지고있다 HttpSession-나는 그것을 샘플 프로젝트 중 일부에서 사용했다.

브라우저에서 "쿠키 삭제"옵션을 보았습니다. 쿠키를 삭제하면 쿠키도 삭제됩니다 HttpSession.

쿠키와 세션이 동일합니까? 그들 사이의 차이점은 무엇입니까?


세션은 사용자 정보가 포함 된 서버 측 파일이고 쿠키는 사용자 정보가 포함 된 클라이언트 측 파일입니다. 세션에는 세션을 특정 사용자에게 매핑하는 고유 식별자가 있습니다. 이 식별자는 URL로 전달되거나 세션 쿠키에 저장 될 수 있습니다.

대부분의 최신 사이트는 두 번째 접근 방식을 사용하여 식별자를 URL에 전달하는 대신 쿠키에 저장합니다 (보안 위험이 있음). 쿠키를 삭제하면 쿠키에 포함 된 고유 세션 식별자를 제거 할 때 쿠키를 삭제하여 해당 세션을 효과적으로 지울 수 있습니다.


쿠키는 단순히 클라이언트와 서버간에주고받는 짧은 텍스트 문자열입니다. name=bob; password=asdfas쿠키를 저장 한 후 서버 측에서 클라이언트를 식별하기 위해 쿠키를주고 받을 수 있습니다 . 이것을 단기 기억이없는 은행원과 교환하는 것으로 생각할 수 있으며 각 거래마다 자신을 식별해야합니다. 물론 이런 종류의 정보를 저장하기 위해 쿠키를 사용하는 것은 끔찍한 안전하지 않습니다. 쿠키의 크기도 제한되어 있습니다.

이제 은행원이 자신의 메모리 문제에 대해 알게되면 정보를 종이에 적어 짧은 ID 번호를 지정할 수 있습니다. 그런 다음 각 거래에 대한 계좌 번호와 운전 면허를 제공하는 대신 "I 'm client 12"라고 말하면됩니다.

웹 서버로 번역 : 서버는 관련 정보를 세션 객체에 저장하고 쿠키로 클라이언트에게 다시 보낼 세션 ID를 만듭니다. 클라이언트가 쿠키를 다시 보내면 서버는 단순히 ID를 사용하여 세션 객체를 조회 할 수 있습니다. 따라서 쿠키를 삭제하면 세션이 손실됩니다.

다른 대안은 서버가 URL 재 작성을 사용하여 세션 ID를 교환하는 것입니다.

링크가 있다고 가정 해보십시오 www.myserver.com/myApp.jsp. 페이지를 통해 모든 URL을 다시 www.myserver.com/myApp.jsp?sessionID=asdf쓰거나 www.myserver.com/asdf/myApp.jsp식별자를 교환 할 수 있습니다. 이 기술은 웹 응용 프로그램 컨테이너에서 처리하며 일반적으로 쿠키없는 세션을 사용하도록 구성을 설정하여 설정됩니다.


쿠키와 세션은 모두 사용자에 대한 정보를 저장하지만 (HTTP 요청의 상태를 유지하기 위해) 쿠키는 클라이언트 측 (브라우저)에 정보를 저장하고 세션은 서버 측에 정보를 저장한다는 점이 다릅니다. 쿠키는 제한된 사용자에 대한 정보를 저장하고 각 사용자에 대해 제한된 콘텐츠 만 저장한다는 의미에서 제한됩니다. 세션은 이러한 방식으로 제한되지 않습니다.


쿠키는 기본적으로 웹 브라우저를 통해 액세스되는 전역 배열입니다. 많은 시간이 값을 보내고받는 데 사용됩니다. 양식 간 값에 액세스하는 저장 메커니즘 역할을합니다. 브라우저는 쿠키를 비활성화하여 세션과 비교하여 사용에 제약을 추가합니다.

세션은 로그인과 로그 아웃 사이에서 정의 할 수 있습니다. 사용자 로그인과 로그 아웃 사이의 시간은 세션입니다. 세션은 세션 시간 동안 만, 즉 로그 아웃하기 전에 만 값을 저장합니다. 세션은 사용자가 로그온 한 후 사용자의 활동을 추적하는 데 사용됩니다.


구글 JSESSIONID . 서블릿 API가 처음에 URL 재 작성을 사용하고 쿠키가 활성화 된 경우 세션을 관리하기 위해 쿠키를 사용하는 방법을 설명합니다.

HTTP는 상태가 없으므로 클라이언트 브라우저는 각 요청과 함께 세션 ID를 서버에 보내야합니다. 서버는 어떤 방법 으로든이 ID를 사용하여 해당 세션에 대한 데이터를 검색하여 요청 수명 동안 사용할 수있게합니다.


Asp.net 세션 :

1. 애플리케이션 전체에 걸쳐 데이터를 유지합니다.

현재 세션이 활성 상태 인 경우 데이터를 유지합니다. 여러 컨트롤러 aciton 및 뷰에서 액세스 할 수있는 데이터가 필요한 경우 세션은 데이터를 저장하고 검색하는 방법입니다.

3. 세션은 사용자 정보가 포함 된 서버 측 파일입니다. [세션은 특정 사용자에게 매핑하는 고유 식별자입니다]

웹 서버로 번역 : 서버는 관련 정보를 세션 객체에 저장하고 쿠키로 클라이언트에게 다시 보낼 세션 ID를 만듭니다. 클라이언트가 쿠키를 다시 보내면 서버는 단순히 ID를 사용하여 세션 객체를 조회 할 수 있습니다. 따라서 쿠키를 삭제하면 세션이 손실됩니다.


쿠키는 클라이언트와 서버간에 세션을 구현하는 방법으로 쿠키에 저장된 세션 정보입니다. 그러나 이것이 세션 정보를 보유하는 유일한 방법은 아니며 다른 방법은 Url에 세션 정보를 저장하는 것입니다.


쿠키 는 브라우저에 텍스트 파일 형식으로 저장되며 제한된 양의 데이터 만 저장됩니다 . 4kb [4096bytes] 만 허용 됩니다. $ _COOKIE 변수는 동일한 이름을 가진 여러 쿠키를 보유하지 않습니다

쿠키 값에 쉽게 액세스 할 수 있습니다 . 따라서 덜 안전 합니다 .setcookie () 함수는

<html> 

꼬리표.

세션 은 서버 측에 저장되며 무제한의 데이터가 저장되며 세션에서 여러 변수를 보유합니다. 쿠키 값에 쉽게 액세스 할 수 없으므로 더 안전 합니다.

링크 : 쿠키와 세션의 차이점


이 스레드에 대한 많은 기여는 이미 다른 방법으로 설명하기 위해 시퀀스 다이어그램을 요약합니다.

여기에 이미지 설명을 입력하십시오

https://web.stanford.edu/~ouster/cgi-bin/cs142-fall10/lecture.php?topic=cookie라는 주제에 대한 링크이기도합니다.

참고 URL : https://stackoverflow.com/questions/359434/differences-between-cookies-and-sessions

반응형