programing

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

procenter 2022. 9. 28. 22:49
반응형

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

PHP에서 세션과 쿠키의 차이점은 무엇입니까?

쿠키는 브라우저에 의해 저장되며 모든 요청과 함께 서버로 전송되는 데이터입니다.

세션은 서버에 저장되어 특정 사용자와 관련된 데이터의 집합입니다(보통 ID 코드가 포함된 쿠키를 통해).

쿠키는 세션을 식별하기 위해 사용됩니다.쿠키를 사용하는 사이트에 접속하여 Chrome inspect 요소, 네트워크 또는 Firefox를 사용하는 경우 FireBug 중 하나를 가져옵니다.

서버에 송신된 헤더와 Cookie 라고 하는 수신 헤더가 있는 것을 확인할 수 있습니다.일반적으로 서버에서 세션을 식별하기 위해 사용할 수 있는 몇 가지 개인 정보(예: ID)가 포함되어 있습니다.이러한 쿠키는 컴퓨터에 남아 있으며 브라우저는 쿠키와 함께 식별된 도메인으로만 쿠키를 전송합니다.

쿠키가 없는 경우 모든 요청에 대해 GET 또는 POST를 통해 고유 ID를 전송합니다.쿠키는 한동안 컴퓨터에 남아 있는 정적 ID와 같습니다.

세션은 cookie 정보와 관련된 서버상의 정보 그룹입니다.PHP를 사용하는 경우 session.save_path 위치를 확인하고 실제로 "세션 참조"할 수 있습니다.서버 파일시스템상의 파일 또는 데이터베이스내의 백업 파일 중 하나입니다.

쿠키 스크린샷

세션과 쿠키의 주요 차이점은 세션 데이터가 서버에 저장되는 반면 쿠키는 방문자의 브라우저에 데이터를 저장한다는 것입니다.

세션은 서버에 저장되므로 쿠키보다 안전합니다.브라우저에서 쿠키를 끌 수 있습니다.

쿠키에 저장된 데이터는 쿠키의 수명에 따라 몇 개월 또는 몇 년 동안 저장될 수 있습니다.그러나 웹 브라우저를 닫으면 세션의 데이터가 손실됩니다.

쿠키

  • 브라우저에 저장된 소량의 데이터(클라이언트 측)입니다.

  • 를 사용하여 PHP에서 설정할 수 있으며 클라이언트의 브라우저로 전송됩니다(HTTP 응답 헤더).

  • Javascript: Javascript에서 할 수 .document.cookie = 'foo=bar';

  • 만료 날짜가 설정되지 않은 경우 기본적으로 브라우저가 닫힐 때 만료됩니다.
    예: http://example.com에 접속하여 콘솔을 열고 다음 작업을 수행합니다.document.cookie = 'foo=bar';닫고 웹 사이트를 열고 을 document.cookie. : 아, 아, 아, 아, 아, 아, 아, 아, 맞다.foo=bar열고 동일한 웹 열어 . 이렇게 브라우저를 닫았다가 다시 열 수 있습니다.document.cookie어어있있있있다다

  • 또한 "브라우저가 닫힐 때 삭제" 이외의 정확한 만료 날짜를 설정할 수도 있습니다.

  • 브라우저에 저장된 cookie는 같은 웹 사이트의 모든 요청 헤더로 서버로 전송됩니다( 참조).예를 들어 Chrome에서는 Developer tools > Network를 열고 요청을 클릭하여 Headers를 참조하십시오.

    여기에 이미지 설명 입력

  • 에서는, 「클라이언트측」으로 수 .document.cookie

  • - 로 에서 읽을 수 .$_COOKIE['foo']

  • 보너스: PHP가 아닌 다른 언어로 설정/가져올 수도 있습니다."bottle" 마이크로 프레임 구조를 사용하는 Python의 예(여기도 참조):

    from bottle import get, run, request, response
    @get('/')
    def index():
        if request.get_cookie("visited"):
            return "Welcome back! Nice to see you again"
        else:
            response.set_cookie("visited", "yes")
            return "Hello there! Nice to meet you"
    run(host='localhost', port=8080, debug=True, reloader=True)
    

세션

  • 서버 측에서 저장된 브라우저 세션에 상대적인 데이터입니다.

  • 서버측 언어마다 다른 방법으로 실장할 수 있습니다.

  • PHP에서는, 가 호출되는 경우:

    • 랜덤 "ID").jo96fme9ko0f85cdglb3hl6ah6
    • 를 들어, 다음과 같은 데이터가 격납된 파일은 다음과 같습니다./var/lib/php5/sess_jo96fme9ko0f85cdglb3hl6ah6
    • 세션 ID는 위에서 설명한 기존 cookie 메커니즘을 사용하여 HTTP 응답 헤더로 클라이언트에 전송됩니다.Set-Cookie: PHPSESSID=jo96fme9ko0f85cdglb3hl6ah6; path=/:

      여기에 이미지 설명 입력

      (쿠키 대신 URL을 통해 전송할 수도 있지만 기본 동작은 할 수 없습니다.)

    • 의 세션 는, 「ID」로 됩니다.document.cookie:

      여기에 이미지 설명 입력

  • PHPSESSID되어 있기 됩니다.따라서 브라우저를 닫거나 다시 열면 "세션"이 더 이상 유효하지 않습니다.

  • 를 사용하여 PHP에서 설정/읽을 수 있습니다.$_SESSION

  • 클라이언트 에서는 세션 데이터는 표시되지 않고 ID만 표시됩니다.index.php:

    <?php
    session_start();
    $_SESSION["abc"]="def";
    ?>
    

    클라이언트 측에 표시되는 것은 (상기와 같이) 세션 ID 뿐입니다.

    여기에 이미지 설명 입력

  • 따라서 세션은 클라이언트에 의해 표시되거나 수정되고 싶지 않은 데이터를 저장하는 데 유용합니다.

  • 자신의 데이터베이스와 ID를 사용하여 기존 Cookie를 사용하여 클라이언트에 ID/토큰을 전송하려면 세션 사용을 완전히 피할 수 있습니다.

세션은 HTTP 요청 간에 상태를 유지하는 서버에서 유지되는 데이터 청크입니다.HTTP는 기본적으로 상태 비저장 프로토콜입니다. 세션은 HTTP에 상태 정보를 제공하기 위해 사용됩니다.

cookie는 클라이언트와 송수신되는 데이터의 단편입니다.쿠키는 어떤 클라이언트가 어떤 세션을 처리했는지 서버에 알려주기 때문에 세션을 용이하게 하기 위해 자주 사용됩니다.다른 방법(쿼리 스트링 매직 등)이 있지만 쿠키가 가장 일반적입니다.

쿠키는 브라우저에 텍스트 파일 형식으로 저장됩니다.최대 4kb[4096bytes]의 제한된 양의 데이터를 저장합니다.하나의 쿠키에 여러 값을 저장할 수 없지만 둘 이상의 쿠키를 사용할 수 있습니다.

쿠키는 쉽게 접근할 수 있기 때문에 보안성이 떨어집니다.setcookie() 함수는 태그 앞에 표시되어야 합니다.

세션은 서버 측에 저장됩니다.세션에는 이러한 스토리지 제한이 없습니다.세션은 여러 변수를 유지할 수 있습니다.쉽게 접근할 수 없기 때문에 쿠키보다 안전합니다.

이러한 설명 중 한 가지 부족한 부분은 쿠키와 세션이 세션별로 링크되는 방법입니다.아이디 쿠키Cookie는 클라이언트와 서버 사이를 오갑니다.서버는 쿠키의 세션 ID 부분에 따라 사용자(및 해당 세션)를 연결합니다.세션을 보낼 수 있습니다.url 경유 아이디(최적 프랙티스 아님) - cookie가 클라이언트에 의해 비활성화되어 있는 경우.

내가 제대로 한 거야?

세션

세션은 서버와 사용자 간의 대화를 유지하기 위해 사용됩니다.서버에 저장되어 있어 쉽게 접근할 수 없습니다.사용자 컴퓨터에 쿠키를 포함합니다.데이터를 무제한으로 저장할 수 있습니다.

쿠키

쿠키는 로컬 컴퓨터에 저장됩니다.기본적으로 사용자 ID를 유지합니다. 즉, 방문자 기록을 추적합니다.세션보다 안전성이 떨어집니다.제한된 양의 데이터를 저장하고 제한된 시간 동안 유지됩니다.

언급URL : https://stackoverflow.com/questions/6339783/what-is-the-difference-between-sessions-and-cookies-in-php

반응형