쿠키와 세션은 무엇이며 서로 어떤 관계가 있습니까?
저는 쿠키와 세션을 전문적으로 이해하려고 합니다.브라우저가 서버에 접속할 때 서버는 브라우저에 "phpsessid"를 가진 쿠키를 클라이언트브라우저 쿠키 폴더에 "붙여넣기"하도록 요청한다는 것을 알고 있습니다.
이제 "phpsessid"를 갖게 되었습니다.클라이언트가 서버에 들어가면 브라우저가 "phpsessid"를 서버에 보내고 서버는 tmp 폴더를 보고 일치하는 데이터가 있으면 이 클라이언트의 모든 데이터를 다시 로드합니다만, 프로세스가 혼란스럽습니다.
누군가 세션과 쿠키를 만드는 과정, 즉 배후에서 무슨 일이 일어나고 있는지 이해하는데 도움을 주시면 감사하겠습니다.
다음 순서로 설명하겠습니다.
쿠키와 세션은 브라우저가 실행하는 서로 다른 요청 간에 응용프로그램 상태를 보존하는 방법입니다.예를 들어 StackOverflow에서 페이지를 요청할 때마다 로그인할 필요가 없는 것은 이러한 사용자 덕분입니다.
쿠키
쿠키는 작은 데이터 비트(최대 4KB 길이)로, 키=값 쌍으로 데이터를 저장합니다.
name=value; name2=value2
이러한 설정은 JavaScript 또는 HTTP 헤더를 사용하는 서버를 통해 이루어집니다.
쿠키에는 유효기간이 설정되어 있습니다.예를 들어 HTTP 헤더를 사용하는 경우:
Set-Cookie: name2=value2; Expires=Wed, 19 Jun 2021 10:18:14 GMT
이로 인해 브라우저는 다음과 같은 이름의 쿠키를 설정합니다.name2
의 가치를 지닌value2
약 9년 후에 만료됩니다.
쿠키는 사용자가 쉽게 내용을 조작할 수 있기 때문에 매우 안전하지 않은 것으로 간주됩니다.그렇기 때문에 항상 쿠키 데이터를 검증해야 합니다.쿠키에서 얻을 수 있는 것이 반드시 기대하는 것이라고는 생각하지 마세요.
cookie는 보통 로그인 상태를 유지하기 위해 사용됩니다.로그인 상태에서는 브라우저로부터 사용자 이름과 특별한 해시가 전송되며 서버는 액세스를 승인하기 위해 데이터베이스와 대조합니다.
쿠키는 세션 작성에도 자주 사용됩니다.
세션
세션이 약간 다릅니다.각 사용자는 세션 ID를 얻습니다.이 ID는 cookie 또는 GET 변수에 의해 검증용으로 서버로 반송됩니다.
세션은 일반적으로 수명이 짧기 때문에 애플리케이션 간의 임시 상태를 저장하는 데 이상적입니다.사용자가 브라우저를 닫으면 세션도 만료됩니다.
세션은 변수 자체가 서버 상에 유지되기 때문에 쿠키보다 안전한 것으로 간주됩니다.동작 방법은 다음과 같습니다.
- 서버가 세션을 엽니다(HTTP 헤더를 통해 쿠키 설정).
- 서버가 세션 변수를 설정합니다.
- 클라이언트 변경 페이지
- 클라이언트는 모든 쿠키를 스텝1 의 세션 ID 와 함께 송신합니다.
- 서버가 쿠키에서 세션 ID를 읽습니다.
- 서버는 데이터베이스(또는 메모리 등) 목록의 세션 ID와 일치합니다.
- 하고 변수를 는, 「」에서 할 수 있게 .
$_SESSION
초글로벌의
PHP가 일치하는 항목을 찾지 못할 경우 새 세션을 시작하고 1에서 7까지의 단계를 반복합니다.
세션은 서버에 보관되어 있기 때문에 중요한 정보를 저장할 수 있지만 사용자가 안전하지 않은 WiFi를 통해 로그인한 경우에도 세션 ID가 도용될 수 있습니다(공격자는 쿠키를 스니핑하여 자신의 것으로 설정할 수 있지만 서버는 변수 자체를 공격자로 식별하지 않습니다).
그게 요점이야.두 가지 주제에 대한 자세한 내용은 PHP 매뉴얼을 참조하십시오.
언급URL : https://stackoverflow.com/questions/11142882/what-are-cookies-and-sessions-and-how-do-they-relate-to-each-other
'programing' 카테고리의 다른 글
여러 COLUMN_JSON 결과를 JSON 어레이로 반환 (0) | 2022.10.02 |
---|---|
~x + ~y == ~(x + y)는 항상 거짓입니까? (0) | 2022.10.02 |
PHP에서 세션 시간 초과를 변경하는 방법 (0) | 2022.10.02 |
스프링 스코프 프록시빈 (0) | 2022.10.02 |
이클립스:자동 포맷의 최대 줄 길이를 설정하시겠습니까? (0) | 2022.10.02 |