2011-02-11 8 views
1

이것이 맞습니까?어느 쪽이 세션/쿠키를 생성합니까?

프론트 엔드 자바 스크립트와 백엔드 언어 (PHP, 루비 등)를 사용하여 세션을 사용하여 쿠키를 만드십니까?

사실이라면 세션 생성은 브라우저가 SID를 보유한 세션 쿠키를 만들어야한다는 것을 의미합니까? 백엔드 언어가 어떻게 쿠키를 만들 수 있습니까? 자바 스크립트에서만 가능하지 않습니까?

답변

5

php에는 쿠키를 설정하는 setcookie 기능이 있습니다.

쿠키는 각 요청시 앞뒤로 전송되는 작은 데이터 (이름 및 값) 일뿐입니다. JavaScript를 사용하여 클라이언트에서 쿠키를 설정할 수 있으므로 다음 요청시 서버로 다시 전송되지만 PHP에서도 설정할 수 있으므로 응답의 브라우저로 전송되어 거기에 저장됩니다. 나는 sessionid가 쿠키에 저장되어 있다고 생각한다.

+0

sessionid는 쿠키가 세션 쿠키 (PHP로 생성되었지만 javascript로 생성되지 않은 쿠키) 인 경우 쿠키에 저장됩니다. – ajsie

+0

예 아니요. 쿠키는 만료 날짜가없는 세션 쿠키입니다 (세션이 끝날 때 자동으로 삭제됩니다). 이러한 쿠키는 자바 스크립트를 사용하여 만들 수도 있습니다. 세션 ID는 그러한 쿠키에 저장됩니다. 이는 HTTP가 무국적이기 때문입니다. 모든 요청은 새로운 서버용입니다. 이 문제를 해결하기 위해 쿠키를 사용하여 데이터를 저장할 수 있습니다. 모든 데이터가 반복적으로 전송 될 수 있으므로 (개인 데이터 포함)이 데이터는 서버에 저장되며 세션 ID 다음 요청시 해당 데이터를 식별하기 위해 쿠키에 저장됩니다. – GolezTrol

0

쿠키는 서버 측에서 생성됩니다. 서버가 응답 할 때 쿠키는 http 헤더에 포함됩니다. 브라우저는 각 요청시이를 다시 서버로 전달합니다. 서버는 필요할 때 쿠키를 업데이트 할 수 있습니다.

Browser ------------------------------> Server 
     <---- Set Cookie -------------- 
     --------- Cookie -------------> 
+0

당신은 [자바 스크립트를 통해 쿠키를 설정할 수 있습니다] (http://www.quirksmode.org/js/cookies.html) ... – ircmaxell

+0

내가 틀릴 수도 있지만 이것이 정확하다고 생각하지 않습니다. 자바 스크립트로 쿠키를 설정할 수 있으며 쿠키는 클라이언트 측 (사용자의 브라우저에 저장 됨)입니다. – switz

+0

https://github.com/carhartl/jquery-cookie – switz

0

쿠키는 http 요청 및 응답의 헤더에 첨부됩니다. 따라서 브라우저와 서버에 액세스 할 수 있습니다. 쿠키의 유일한 상수는 연결된 도메인입니다.

+0

하지만 javascript를 사용하여 쿠키를 만들면 헤더와 아무런 관련이 없습니까? – ajsie

+0

잘못되었습니다. 쿠키는 쿠키입니다. 누가 그것을 창조했는지에 상관없이. 이 정보는 브라우저에 저장되어 각 요청에 따라 브라우저에서 서버로 전송되는 정보입니다. PHP로 생성 된 쿠키는 브라우저로 보내어 거기에 저장됩니다. 응답이 끝난 후에는 쿠키를 만든 PHP 또는 JavaScript인지 알 수 없습니다. – GolezTrol

관련 문제