Session과 Cookie의 구별과 이해
먼저 Session에 대해 이야기해보자
SESSION에 대한 논쟁은 끊이지 않은 것 같지만, SESSION을 이해할 수 있는 사람의 수가 90% 이상을 차지할 것이다. 하지만 너무 과하게 얘기하진 마세요~
SESSION 사용에 동의하는 사람도 있고, 동의하지 않는 사람도 있습니다. 그런데 이 질문에 어떻게 대답해야 할까요? 제 의견을 들어보시는 게 좋을 것 같습니다. 실수를 했다면 금괴나 동전 외에는 아무것도 던지지 마세요.
제가 프로그래머이고 프로그래밍에서 가장 중요한 것은 효율성이라는 걸 아시는 분들도 계시겠지만, 여기서는 디자인에 대한 이야기는 하지 않고 좀 더 실용적인 관점에서 SESSION을 살펴보겠습니다.
먼저 SESSION이 수행하는 작업에 대해 이야기해 보겠습니다. SESSION은 특정 사용자의 IE 및 현재 창을 통해 열려 있는 모든 창에 대한 대상 사용자 정보를 저장할 수 있는 사용자 정보 저장 메커니즘입니다. 왜 이런 말을 하는가? 먼저 SESSION이 어떻게 시작되는지 살펴보겠습니다. IE를 열고 웹 사이트를 탐색하면 SESSIONID를 요청하고 사진, 사운드, FLASH와 같은 다양한 유형의 데이터에 대한 다운로드 권한을 요청하는 명령이 실행됩니다.
실제 데이터 전송 내용: IE에서 서버로
GET / HTTP/1.1
수락: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Accept-Language0: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0(호환; MSIE 5.01; Windows NT 5.0)
Host: www. jh521.com
연결: Keep-Alive
서버는 IE가 사용할 사용되지 않은 SESSIONID를 반환합니다. 이때 IE는 반환된 SESSIONID
를 저장하고 해당 페이지의 다운로드 데이터를 반환합니다. 동시에 다음과 같습니다: 서버에서 IE
HTTP/1.1 200 OK
서버: Microsoft-IIS/5.0
날짜: 2003년 11월 30일 일요일 16:41:51 GMT
콘텐츠 길이: 21174..Content-Type: text/html
Set-Cookie: ASPSESSI/
Cache-control: private
이때 페이지 HTML 코드가 있습니다(이 IE 프로그램의 SESSIONID는 아님). IBOMFONAOJFEEBHBPIENJFFC입니다. IE가 사이트에서 ASP 프로그램을 실행할 때 IBOMFONAOJFEEBHBPIENJFFC가 서버로 전송되고 서버는 SESSION("name")="name"을 설정한다는 것을 알게 됩니다. 서버의 SESSION("IBOMFONAOJFEEBHBPIENJFFC")( "name")="name"
또는
SESSION(SESSIONID)("name")="name"
으로 간주될 수 있습니다. 이런 식으로 SESSION 사용자를 구별합니다.
서버에서 이 ID를 피드백하면 해당 ID가 사용되었는지 확인합니다. 변경하면 어차피
에서는 반복을 허용하지 않습니다. 누군가의 SESSION ID를 속이기 위한 시뮬레이션을 하고 싶다면 괜찮습니다. 단, 상대방의 IE 전송 신호를 획득하고 당시 SESSIONID가 취소되지 않았음을 확인한 후에만 구현할 수 있습니다.
하지만 시간이 있으면 POST 신호를 통해 직접 그의 NAME과 PASS를 찾을 수 있습니다. 굳이 SESSIONID가 어떻게 동작하는지 이해하시는 분들도 있을 거라 생각해서 COOKIE를 살펴보겠습니다. 어떤 분들은 SESSIONID가 엄밀히 말하면 같은 타입은 아니지만 같은 타입이라고 하더군요. 사용자 및 서버는 COOKIE를 설정하면 IE에 명령을 피드백합니다. IE는 이 네트워크 명령을 통해 COOKIE를 생성하고 저장합니다. 이 정보는 이 사이트에 액세스할 때와 COOKID가 유효할 때와 같이 획득됩니다.
그렇다면 SESSION 대신 COOKIE를 사용하는 이유는 무엇입니까?
차이점을 살펴보세요
유효한 시간 및 저장 방법 전송 내용
COOKIE는 로컬로 설정 및 보관 가능 정보 지우기
SESSION은 IE와 서버를 닫지 않습니다. 시간 제한 없음, SESSIONID만
사용자가 다음에 사용자 이름이나 비밀번호를 입력하지 않고 웹사이트에 로그인하도록 하려는 경우에만 COOKIE를 사용할 수 있습니다.
오랫동안 유지될 수 있기 때문입니다(COOKIE 날짜 이전에 기록이 삭제되거나 무효화됨)
그러나 SESSION은 그럴 수 없으며 너무 오랫동안 보관되지 않으며 IE는 종료 후 자동으로 SESSIONID 기록을 지웁니다
다음에 로그인할 때 새 SESSIONID를 요청합니다.
그리고 서버에서는 사용자 개인변수를 통해 사용자의 상태를 확인할 때 COOKIE를 사용할 수 없습니다
사용자 권한이 USER로 설정된 경우. IE가 접속하면 USER의 클리어 코드를 서버로 전송합니다.
그럼 COOKIE 레코드를 직접 수정해서 USER를 ADMIN으로 변경하는 등의 방법을 사용하면~~
어려울 것 같아요.
단, 사용자 이름, 비밀번호, 웹사이트 색 구성표 등의 정보를 저장하려면 COOKIE를 사용하는 것이 가장 좋습니다
알겠습니다. 좀 피곤해서 이것에 대해 이야기해 보겠습니다.
Request.ServerVariables("HTTP_REFERER")
어떤 사람들은 특히 원격 제출과 불법 침입을 처리하기 위해 몇 가지 주요 제한 사항을 구현하기 위해 이 Request.ServerVariables("HTTP_REFERER")
를 사용하는 것 같습니다.
그렇다면 서버에서 얻은 HTTP_REFERER 정보는 IE를 통해 완전히 서버로 전송되며 이는 시뮬레이션이 가능하고
VB를 사용하는 데 30분도 채 걸리지 않는다는 점을 알려드립니다. HTTP_REFERER에 대한 침입 프로그램을 생성합니다.
(아쉽게도 원래는 별 짓 안 하는 줄 알았는데 WEB 게임 끊기 프로그램을 하러 왔어요)
첨부한 좋은 답변:
--------- ------ ------------------ ------ -----------
COOKIE는 로컬입니다 파일에는 알리의 40인의 도둑 바바의 집에서 만든 마크,
또는 우유 배달원이 문에 못으로 박은 상자가 있습니다.
SESSION은 목욕할 때 욕조에서 주는 열쇠인 서버측 메모리입니다.
나만의 사용을 위해 여러 개의 상자를 열 수 있습니다.
APPLICATION은 대중목욕탕입니다.
ppmm을 포함한 모든 사람을 여기에서 볼 수 있습니다:).
위 내용은 jQuery 쿠키의 내용을 포함하여 Session과 Cookie 사이의 jQuery 쿠키의 구별과 설명을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.