Session μ μ΄μ©ν μΈμ¦.
νμ μΈμ¦μ΄λ? ¶
νμ μΈμ¦μ΄λ νμμκ² λΆμ¬λ κ³ μ μ μμ΄λμ ν¨μ€μλλ₯Ό ν΅ν΄ νμμμ νμΈνκ³ , νμΈλ νμμ νμμ μΉ μ¬μ΄νΈμ νμ μ μ© κΈ°λ₯μ μ¬μ©ν μ μλλ‘ νλ κ².
Session μ΄λ ¶
Sessionμ Cookieκ° ν΄λΌμ΄μΈνΈ μΈ‘μμ μ 보λ₯Ό κ΄λ¦¬νλκ²κ³Όλ λ¬λ¦¬, μλ²μΈ‘μμ μ 보λ₯Ό κ΄λ¦¬ν©λλ€. Sessionκ³Ό Cookieκ° μ λνλ¬λμ§λ₯Ό μλ €λ©΄ κ·Έ κ·ΌμμΈ HTTP νλ‘ν μ½μ λν μ½κ°μ μ΄ν΄κ° νμν©λλ€.
HTTP νλ‘ν μ½μ stateless νλ‘ν μ½μ
λλ€. connectionless νλ‘ν μ½μ΄λΌκ³ λ ν©λλ€. μλ₯Ό λ€μ΄, μΉλΈλΌμ°μ λ₯Ό ν΅ν΄ μ λ‘νμ΄μ§μ μ μνλ€κ³ λ΄
μλ€. ν΄λΌμ΄μΈνΈ μ
μ₯μμλ μκΈ° μμ μ΄ μ°μλ μμ²(κ²μλ¬Ό 보기λ, μν€ μ¬μ©λ±)μ 보λ΄λκ²μ μμ§λ§, μλ² μ
μ₯μμλ λ§€λ² μ¨ μμ²μ΄ λꡬλ‘λΆν° μ¨ κ²μΈμ§λ₯Ό μ λ°©λ²μ΄ μμ΅λλ€. μλνλ©΄ HTTP νλ‘ν μ½μ νμμ΄ μ°κ²°μ§ν₯μ μ΄ μλκ³ , μνλ₯Ό μ μ μκΈ° λλ¬Έμ
λλ€.
κ·Έλμ
ν΄λΌμ΄μΈνΈμ μλ²κ°μ μ§μμ μΈ μ λκ΄κ³λ₯Ό λ§Ίκ³ μΆμλ μ¬μ©νλ λ°©λ²μΌλ‘ Cookieμ Sessionμ΄ λ±μ₯νκ² λμμ΅λλ€. Cookieμ λν μ΄μΌκΈ°λ λ
ΌμΈλ‘ νκ³ , Sessionμ μ΄ν΄λ³΄λ©΄, μ΄λ νν μΈμ
μμ΄λ λλ μΈμ
ν€λΌ λΆλ₯΄λ(μ΄ν μΈμ
μμ΄λλ‘ ν΅μΌ) κ°μ μΏ ν€μ μ€μ ν΄λκ³ , ν΄λΌμ΄μΈνΈμ μμ²μ μΏ ν€μμ μΈμ
μμ΄λλ₯Ό κ°μ Έμμ λ΄λΆμ μΈ κ²ν κ³Όμ μ κ±°μΉκ³ , μ΄μλ°λΌ μ ν¨ν μμ² λλ 무ν¨ν μμ²μ μΈμΉκ²(μΈμ¦νκ²)λ©λλ€.
μλ²μμλ μ΄ μΈμ
μμ΄λλ₯Ό λ°νμΌλ‘ μΈμ¦ μμ
μ νκΈ°λ§ νλ©΄ λλ, μ 보λ₯Ό μ»λ λ°©λ²μΌλ‘ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©ν건 νμΌμμ€ν
μ μ¬μ©ν건 κ·Έ μ΄μ©μ μ νμ κ°νμ§ μμ΅λλ€.
Session μ μ΄μ©ν μΈμ¦ ¶
μ¬μ©μκ° λ‘κ·ΈμΈμ ν νμ, μΈμ
μμ΄λλ₯Ό μμ±ν΄μ μΈμ
κ°μ μ€μ ν©λλ€. μ΄λ₯Ό ν΅ν΄ ν΄λΌμ΄μΈνΈ(ie. μΉλΈλΌμ°μ Έ)κ° μμ²μ ν λ μΈμ
μμ΄λλ₯Ό μ»μ΄μ€κ³ , μλ²μΈ‘μμλ μΈμ¦μ νκ² λ©λλ€.
μλ₯Όλ€μ΄, 3λΆ 46μ΄λμ μλ¬΄λ° μ¬μ©μμ μμ²μ΄ μμλ μλμΌλ‘ λ‘κ·Έμμμ²λ¦¬λλ μλΉμ€λ₯Ό κ°μ νκ³ λ€μμ μλ리μ€λ₯Ό λ΄
μλ€.
- μ²μ μ¬μ©μκ° λ‘κ·ΈμΈμ ν©λλ€. μ΄λ μΈμ
μμ΄λλ₯Ό μμ±ν΄μ μ μ₯νκ² μ£ ? λ°μ΄ν°λ² μ΄μ€λ₯Ό μ΄μ©νλ€κ³ κ°μ νκ³ , μμ±ν μΈμ
μμ΄λλ₯Ό ν€ κ°μΌλ‘ ν΄μ λΆκ°μ μΈ μ 보λ₯Ό κΈ°λ‘ν©λλ€. μ¬κΈ°μλ νμ¬ μμ²μ΄ μ¨ μκ°μ κΈ°λ‘νλ©΄ λκ² κ΅°μ.
- μ¬μ©μκ° 'κΉλκ·μ 3λΆ 45μ΄κ°μ κ³ λ°±'μ λ£κ³ μ¬λΉ¨λ¦¬ λ€μ μλ²λ‘ μμ²μ 보λ
λλ€.
- μλ²κ° μΈμ
μμ΄λλ₯Ό ν΅ν΄ μ΄μ μμ² μκ°κ³Όμ μ°¨μ΄λ₯Ό ꡬν΄λ³΄λ 1μ΄ μ°¨μ΄λ‘ μ ν¨ν μλΉμ€ μμ²μμ λΆλ₯΄μ§μ΅λλ€. λ€μ νμ¬ μκ°μ κΈ°λ‘ν©λλ€.
- μ΄λ²μ μ¬μ©μκ° νμ₯μ€μ κ°λλ€. λ³λΉμμ΅λλ€. 5λΆνμ λμμμ μλ²λ‘ μμ²μ 보λ΄μ§λ§, μ΄λ―Έ λλ λ¦μμ΅λλ€. μλ²κ° ν΄λΉ μμ²μ λν΄ λ¬΄ν¨λ₯Ό μ μΈνκ³ , λ‘κ·ΈμΈ νλ©΄μ 보μ¬μ€λλ€.
μ¬κΈ°μ μ κΉ
Q. λΈλΌμ°μ Έλ₯Ό λ«μΌλ©΄ μλμΌλ‘ λ‘κ·Έμμλλκ±° μλκ°μ?
A. maybe or maybe not. μΌλ°μ μΈ κ²½μ°, μΈμ μμ μ¬μ©λλ μΏ ν€λ λΈλΌμ°μ Έλ₯Ό λ«μΌλ©΄μ λ³΄ν΅ μμ λκ² λμ΄μμΌλ―λ‘ κ·Έλ λ€κ³ λ³Ό μλ μμ§λ§, μλ°ν μ΄μΌκΈ°ν΄μ, λ‘κ·Έμμμ²λ¦¬κ° λλκ²μ μλλλ€. ν΄λΉ μΈμ ν€λ₯Ό ν΅ν΄ λ€μ μμ²νλ€λ©΄, μλΉμ€λ₯Ό λ°μ μ μμ΅λλ€. μ΄ λͺ¨λ μΌμ HTTP νλ‘ν μ½ νΉμ±μ λΈλΌμ°μ Έλ₯Ό λ«λ λ±μ νμκ° μ€νλΌμΈμμ μ΄λ£¨μ΄μ§λκ²μ΄κΈ° λλ¬Έμ λλ€. (λ°°νλ·μ νλ€κ° λμ μ λ½μΌλ©΄ λμ€μ»€λ₯μ΄ λμ§λ§, μΉμνλμ€ λμ μ λ½λ건 μ΄λ ν μμλ λ―ΈμΉμ§ μλκ²κ³Ό κ°μ΅λλ€.)
A. maybe or maybe not. μΌλ°μ μΈ κ²½μ°, μΈμ μμ μ¬μ©λλ μΏ ν€λ λΈλΌμ°μ Έλ₯Ό λ«μΌλ©΄μ λ³΄ν΅ μμ λκ² λμ΄μμΌλ―λ‘ κ·Έλ λ€κ³ λ³Ό μλ μμ§λ§, μλ°ν μ΄μΌκΈ°ν΄μ, λ‘κ·Έμμμ²λ¦¬κ° λλκ²μ μλλλ€. ν΄λΉ μΈμ ν€λ₯Ό ν΅ν΄ λ€μ μμ²νλ€λ©΄, μλΉμ€λ₯Ό λ°μ μ μμ΅λλ€. μ΄ λͺ¨λ μΌμ HTTP νλ‘ν μ½ νΉμ±μ λΈλΌμ°μ Έλ₯Ό λ«λ λ±μ νμκ° μ€νλΌμΈμμ μ΄λ£¨μ΄μ§λκ²μ΄κΈ° λλ¬Έμ λλ€. (λ°°νλ·μ νλ€κ° λμ μ λ½μΌλ©΄ λμ€μ»€λ₯μ΄ λμ§λ§, μΉμνλμ€ λμ μ λ½λ건 μ΄λ ν μμλ λ―ΈμΉμ§ μλκ²κ³Ό κ°μ΅λλ€.)
λ‘κ·ΈμΈ νκΈ° ¶
λ€μμ λ‘κ·ΈμΈμ νλ μμ μ΄λ€.
κ·Έλ¬λ©΄ μλμ μμ κ° μνλ λ°λ₯Ό μ΄λ£° μ μμκΉμ? μλλΌλ©΄, μ΄λ»κ² λ°λμ΄μΌ ν κΉμ.
example.htmlμ΄ μμ λ λΈλΌμ°μ Έλ₯Ό λ«λκ²λ§μΌλ‘ λ‘κ·Έμμμ΄ μλ μλ μκ³ .. κ·Έκ±Έ κ³ μ³μΌ νλ€λ 건κ°μ? --μκ·
Threadλ‘ Go Go .png)
.png)
~cpp <?php session_start(); // Session μ μ¬μ©νκΈ° μν΄μλ λ°λμ 맨 μ²μμ μ΄ ν¨μλ₯Ό νΈμΆν΄μ£Όμ΄μΌ νλ€. ?> <html> <head> <title>Example</title> </head> <body> <?php // Auth λΌλ Session λ³μκ° μλ€λ©΄ μΈμ¦μ΄ μλ κ²½μ° μ΄λ―λ‘... if(!isset($_SESSION[Auth])) { ?> μ΄κ³³μ νμ μΈμ¦μ΄ λμ§ μμ κ²½μ°μ 보μ¬μ€μΌ ν κ²μ λ£λλ€. (νμ μΈμ¦ νΌ λ±...) <?php } // Auth λΌλ Session λ³μκ° μλ€λ©΄ μΈμ¦μ΄ λ κ²½μ° μ΄λ―λ‘... else { ?> μ΄κ³³μ νμ μΈμ¦μ΄ λ κ²½μ°μ 보μ¬μ€μΌ ν κ²μ λ£λλ€. (λ‘κ·Έ μμ νΌ, νμ μ μ© κΈ°λ₯ λ±...) <?php } ?> </body> </html>
login.php - νμ μΈμ¦ νΌμμ ACTION μμ±μΌλ‘ μ¬μ©
~cpp <?php μ΄κ³³μμ νμ DB λ₯Ό κ²μνμ¬ νμ μΈμ¦ νΌμΌλ‘λΆν° λ°μ μμ΄λμ ν¨μ€μλλ₯Ό νμΈνλ€. if(νμμ΄ λ§λ κ²½μ°) { $_SESSION[Auth] = "OK"; // Auth λΌλ Session λ³μλ₯Ό λ§λ€μ΄ μ€λ€. } ?> <script language = "JavaScript">window.location.replace("example.html");</script>
λ‘κ·Έμμ νκΈ° ¶
λ€μμ λ‘κ·Έμμμ νλ μμ μ΄λ€.
logout.php - λ‘κ·Έ μμ νΌμμ ACTION μμ±μΌλ‘ μ¬μ©
~cpp <?php unset($_SESSION[Auth]); // Auth λΌλ Session λ³μλ₯Ό μ κ±°νλ€. ?> <script language = "JavaScript">window.location.replace("example.html");</script>
Thread ¶
- Cookieμ Sessionμ μ°¨μ΄λ₯Ό μ΄ν΄νλμ? μ Cookieλ₯Ό λλκ³ Sessionμ μ¬μ©νλ €κ³ νλκ²μ΄μ§μ?
- 보μμ Sessionμ΄ λ μ’λ€λ μ리λ₯Ό λ€μ΄μμ --μκ·
- 보μμ Sessionμ΄ λ μ’λ€λ μ리λ₯Ό λ€μ΄μμ --μκ·
- μ΄λ€μ μ μμ΄μ 보μμ Sessionμ΄ λ μ’μκ²μΌκΉμ?
- Cookieλ ν΄λΌμ΄μΈνΈμ μμ΄μ μ‘°μμ΄ κ°λ₯ν μ μμ§λ§ Sessionμ μλ²μ μμ΄μ μ‘°μνλκ² νλ€λ€κ³ λ€μμ΅λλ€. --μκ·
- Cookieλ ν΄λΌμ΄μΈνΈμ μμ΄μ μ‘°μμ΄ κ°λ₯ν μ μμ§λ§ Sessionμ μλ²μ μμ΄μ μ‘°μνλκ² νλ€λ€κ³ λ€μμ΅λλ€. --μκ·
- λ§μ΅λλ€. νμ¬ μμ μμ μΈμ
μ κΈ°λ‘νλ κ°μ μ΄λ€ κ°μΈκ°μ? μ΄λ€μμΌλ‘ μΈμ¦μ΄ κ°λ₯νμ£ ? λ§μ½ ν΄λΌμ΄μΈνΈμΈ‘μμ κ°μ μ‘°μνλ€λ©΄ μ΄λ»κ² μ‘°μμ¬λΆλ₯Ό μμλΌ μ μλμ?
- μ΄λΌ.. μΈμ
λ μ‘°μμ΄ κ°λ₯νκ°μ? - μ¬λ
μΏ ν€κ°μ μ‘°μν μ μμ΅λκΉ? μΈμ μ μ΄λ€μμΌλ‘ μμ±νκ³ μ¬μ©ν μ μλμ§μλν΄ μ΄ν΄λ³΄κΈ°λ°λλλ€
- μ΄λΌ.. μΈμ
λ μ‘°μμ΄ κ°λ₯νκ°μ? - μ¬λ
- κ·Έλ₯ λκ° λ¬Έμ μΈμ§ λ§μ ν΄μ£ΌμΈμ. κ·Έλ¦¬κ³ μ΄λ»κ² κ³ μΉλ©΄ λλμ§. --μκ·
λ¬Έμ μμ²΄κ° μ€μνκ°μ? μ΄λ€κ² λ¬Έμ μ΄κ³ , μ λ¬Έμ κ° λλμ§, λ¬Έμ κ° μ λ¬Έμ κ°λλμλ κ³Όμ μ΄ μ€μνλ€κ³ μκ°ν΄μ μ΄λ°μμ λ¬Έλ΅λ²μ μλνκ² λ¬μ΅λλ€. λ¨μν λ¬Έ/λ΅μ μ΄κ±°νλκ²λ³΄λ€ λ¬Έμ λ₯Ό λ°κ²¬νλ κ³Όμ μ΄ μ€μνκ² μκ°λμ΄ μ΄λ κ² νλλ°, λ°μλ€μ΄λ μ μ₯μμλ κ·Έκ² μλμλ 보ꡰμ. λ€μνλ² λ¬»κ² μ΅λλ€. κ·Έλ₯ λ¬Έμ μ λ΅μ μνλμ§ λ΅μ λ¬μμ£ΌκΈ° λ°λλλ€. --sun
- μ§λ¬Έλ€μ΄ μ‘°κΈ μ΄ν΄κ° μλΌμμ... κ·ΈλΌ μΈμ
κ³Ό μΏ ν€λ₯Ό κ°μ΄ μ¬μ©νλ©΄ μκ°νμλ λ¬Έμ κ° ν΄κ²°μ΄ λ κΉμ? μΏ ν€μ λ§λ£ κΈ°κ°μ μ£Όμ§ μμΌλ©΄ λΈλΌμ°μ Έλ₯Ό λ«μΌλ©΄ μμ΄μ§λκ±Έλ‘ μκ³ μλλ°μ μ²μμ μΏ ν€λ₯Ό νμΈν΄ μλ€λ©΄ μΈμ
μ΄ λ¨μμλλΌλ μ§μλ²λ¦¬λ λ°©λ²μ μ¬μ©νλ©΄ λ¬Έμ κ° ν΄κ²° λ κΉμ? --μκ·
.png)
- μΏ ν€μ λ§λ£ κΈ°κ°μ μ£Όμ§ μμΌλ©΄ λΈλΌμ°μ Έλ₯Ό λ«μΌλ©΄ μμ΄μ§λκ±Έλ‘ μκ³ μλλ°μ
λ§μ΅λλ€.
- μ²μμ μΏ ν€λ₯Ό νμΈν΄ μλ€λ©΄ μΈμ
μ΄ λ¨μμλλΌλ μ§μλ²λ¦¬λ λ°©λ²μ μ¬μ©νλ©΄ λ¬Έμ κ° ν΄κ²° λ κΉμ?
μλͺ» μ΄ν΄νκ³ μμ΅λλ€. μΈμ μμ 보ν΅μ μΏ ν€λ₯Ό μ¬μ©ν©λλ€. μΏ ν€μ κΈ°λ‘λ μΈμ κ°μ κ°μ Έμμ μλ²μΈ‘μμ μΈμ¦μ νλκΉμ.
μν©
κΉκ΅°κ³Ό μ‘°κ΅°μ΄ λ³μμνμ νκ³ μμ΅λλ€. μ΄μ μμ μ μνν΄μΌ νλλ°, κΉκ΅°μ μμμ λ§‘κ³ μ‘°κ΅°μ λ³Έμ§μ μ§ν€κ³ μμ΅λλ€. κΉκ΅°μ΄ μ‘°κ΅°κ³Ό ν΅μ μ νκΈ° μν΄μλ 무μ κΈ°λ₯Ό μ¬μ©νλλ°, μνΈλͺ
'λ‘μμ¬λ£¨νΈ'λ₯Ό μ¬μ©νκΈ°λ‘ ν©λλ€. μ΄λλ§ μμμ λ§μΉ κΉκ΅°μ μ‘°κ΅°κ³Όμ ν΅μ μ μ€λΉν©λλ€.
μ§μ§μ§ μ§μ§
κΉκ΅° : λ‘μμ¬λ£¨νΈ
μ‘°κ΅° : (μ.. μ°λ¦¬νΈμΌλ‘λΆν°μ λ©μΈμ§λ‘κ΅°)μ€μΌμ΄ μ μμ νλ½νλ€. μ΄μ λΆν° μΈμ¦ν€λ‘ AuthλΌλ λ³μμ OKλΌλ κ°μ ν λΉνλ€.
μλΏμ¬-_-.. κ·Έλ°λ° μμμ λκ°κ±΄ κΉκ΅°λ§μ΄ μλμμ΅λλ€. μ κ΅°μ΄ κΉκ΅°κ³Ό ν¨κ» λκ°λ κ²μ΄μμ΅λλ€.