[Web] μΏ ν€μ μΈμ
HTTP νλ‘ν μ½ νΉμ§
- λΉμ°κ²° μ§ν₯(Connectionless)
ν΄λΌμ΄μΈνΈμμ μλ²μ μμ²μ 보λ΄λ©΄ μλ²λ ν΄λΌμ΄μΈνΈμ μλ΅μ νκ³ μ μμ λλ νΉμ±μ΄ μλ€.(HTTP1.1μμ Connectionν€λμ keep-aliveμ€μ νλ©΄ 컀λ₯μ μ μ μ§ν μ μλ€.) - μνμ 보 μ μ§ μ ν¨(Stateless)
HTTP ν΅μ μ μμ²μ μλ΅νκ³ μ μμ λκΈ° λλ¬Έμ ν΄λΌμ΄μΈνΈ μν μ 보λ₯Ό μ μ μλ€.
μΏ ν€μ μΈμ μ νμμ±
μΏ ν€μ μΈμ μ νμ → HTTP νλ‘ν μ½μμ μνλ₯Ό μ μ§νκΈ° μν¨
μμ κ°μ HTTP νλ‘ν μ½μ νΉμ§μΌλ‘ λͺ¨λ μμ²κ°μ μμ‘΄κ΄κ³κ° μκΈ° λλ¬Έμ μ¬μ©μλ₯Ό μΈμ¦ν μ μλ€. μ΄μ μμ²κ³Ό νμ¬ μμ²μ΄ κ°μ μ¬μ©μμ μμ²μΈμ§ μκΈ° μν΄μλ μνλ₯Ό μ μ§ν΄μΌ νλ€. HTTP νλ‘ν μ½μμ μνλ₯Ό μ μ§νκΈ° μν κΈ°μ λ‘ μΏ ν€μ μΈμ μ΄ μλ€.
μΏ ν€(Cookie)
κ°λ
- ν΄λΌμ΄μΈνΈ λ‘컬μ μ μ₯λλ ν€μ κ°μ΄ λ€μ΄μλ νμΌμ΄λ€.
- μ΄λ¦, κ°, μ νΈ μκ°, κ²½λ‘ λ±μ ν¬ν¨νκ³ μλ€.
- ν΄λΌμ΄μΈνΈμ μν μ 보λ₯Ό λΈλΌμ°μ μ μ μ₯νμ¬ μ°Έμ‘°νλ€.
- μ£Όλ‘ μλ²μμ μμ±νμ¬ λΈλΌμ°μ μ μ μ₯νλ λ°μ΄ν°
κ΅¬μ± μμ
- μΏ ν€μ μ΄λ¦(name)
- μΏ ν€μ κ°(value)
- μΏ ν€μ λ§λ£μκ°(Expires)
- μΏ ν€λ₯Ό μ μ‘ν λλ©μΈ μ΄λ¦(Domain)
- μΏ ν€λ₯Ό μ μ‘ν κ²½λ‘(Path)
- 보μ μ°κ²° μ¬λΆ(Secure)
- HttpOnly μ¬λΆ(HttpOnly)
λμλ°©μ
- ν΄λΌμ΄μΈνΈκ° μλ²μ λ‘κ·ΈμΈ μμ²μ νλ€.
- μλ²λ μνλ₯Ό μ μ§νκ³ μΆμ κ°μ μΏ ν€(cookie)λ‘ μμ±
- μλ²λ ν΄λΌμ΄μΈνΈμ λ‘κ·ΈμΈ μμ²μ μ ν¨μ±μ νμΈνκ³ μλ΅ν€λμ 'set-cookie: user=chrisjune'μ μΆκ°νμ¬ μλ΅νλ€.
- μ λ¬λ°μ μΏ ν€λ μΉ λΈλΌμ°μ μμ κ΄λ¦¬νκ³ μλ€κ° λ€μ μμ² λ μΏ ν€λ₯Ό HTTP ν€λμ λ£μ΄μ μ μ‘. 'cookie: user=chrisjune'
- μλ²μμλ μΏ ν€ μ 보λ₯Ό μ½μ΄ μ΄μ μν μ 보λ₯Ό νμΈν ν μλ΅
μΏ ν€ μ¬μ© μ
- μμ΄λ, λΉλ°λ²νΈ μ μ₯
- μΌνλͺ° μ₯λ°κ΅¬λ
μΏ ν€ κ°μ F12λ₯Ό λλ¬ κ°λ°μλꡬμμ νμΈνκ±°λ κ΄λ ¨ νλ¬κ·ΈμΈμ μ€μΉνλ©΄ νμΈ/μμ ν μ μλ€. μλ³μ‘°μ μνμ΄ νμ μκΈ° λλ¬Έμ μΏ ν€κ°λ μνΈνν΄μΌ μμ νκ² μ¬μ© κ°λ₯νλ€.
μΈμ (Session)
κ°λ
- μΌμ μκ° λμ κ°μ λΈλΌμ°μ λ‘λΆν° λ€μ΄μ€λ μμ²μ νλμ μνλ‘ λ³΄κ³ κ·Έ μνλ₯Ό μ μ§νλ κΈ°μ μ΄λ€.
- μ¦, μΉ λΈλΌμ°μ λ₯Ό ν΅ν΄ μλ²μ μ μν μ΄νλΆν° λΈλΌμ°μ λ₯Ό μ’ λ£ν λκΉμ§ μ μ§λλ μνμ΄λ€.
- λΈλΌμ°μ κ° μ’ λ£λκΈ° μ κΉμ§ ν΄λΌμ΄μΈνΈμ μμ²μ μ μ§νκ² ν΄μ£Όλ κΈ°μ
λμλ°©μ
- ν΄λΌμ΄μ΄λ©κ° μλ²μ λ‘κ·ΈμΈ μμ²μ νλ€.
- μλ²λ ν΄λΌμ΄μΈνΈμ λ‘κ·ΈμΈ μμ²μ μ ν¨μ±μ νμΈνκ³ uniqueν idλ₯Ό sessionidλΌλ μ΄λ¦μΌλ‘ μ μ₯νλ€.
- μλ²κ° μλ΅ν λ μλ΅ν€λμ 'set-cookie: sessionid=a1x2fjz'λ₯Ό μΆκ°νμ¬ μλ΅νλ€.
- ν΄λΌμ΄μΈνΈλ μ΄ν μλ²μ μμ²ν λ μΉ λΈλΌμ°μ λ₯Ό λ«κΈ°κΉμ§ μ λ¬λ°μ μΏ ν€λ₯Ό μμ²ν€λμ 'cookie: sessionid=a1x2fjz'λ₯Ό λ£μ΄ μ μ‘νλ€.
- μλ²μμ μμ²ν€λμ 'sessionid' κ°μ μ μ₯λ μΈμ μ μ₯μμμ μ°Ύμλ³΄κ³ μ ν¨νμ§ νμΈ ν μμ²μ μ²λ¦¬νκ³ μλ΅νλ€.
μΈμ μ¬μ© μ
- λ‘κ·ΈμΈ
μΈμ λ μΏ ν€λ₯Ό μ¬μ©νμ¬ κ°μ μ£Όκ³ λ°μΌλ©° ν΄λΌμ΄μΈνΈμ μν μ 보λ₯Ό μ μ§νλ€. μ¦, μν μ 보λ₯Ό μ μ§νλ μλ¨μ μΏ ν€μ΄λ€.
μΏ ν€μ μΈμ μ μ°¨μ΄μ
κ΅¬λΆ | μ΄λ¦ | λ΄μ© |
μ μ₯ μμΉ | μΏ ν€ | ν΄λΌμ΄μΈνΈ |
μΈμ | μλ² | |
보μ | μΏ ν€ | ν΄λΌμ΄μΈνΈμ μ μ₯λλ―λ‘ λ³΄μμ μ·¨μ½ |
μΈμ | μΏ ν€λ₯Ό μ΄μ©ν΄ Session IDλ§ μ μ₯νκ³ μ΄ κ°μΌλ‘ ꡬλΆν΄μ μλ²μ μ²λ¦¬νλ―λ‘ λΉκ΅μ 보μμ±μ΄ μ’λ€. | |
λΌμ΄ν μ¬μ΄ν΄ | μΏ ν€ | λ§λ£μκ°μ λ°λΌ λΈλΌμ°μ λ₯Ό μ’ λ£ν΄λ κ³μ λ¨μμμ μ μλ€. |
μΈμ | λ§λ£μκ°μ μ ν μ μμ§λ§ λΈλΌμ°μ κ° μ’ λ£λλ©΄ λ§λ£μκ°μ μκ΄μμ΄ μμ λλ€. | |
μλ | μΏ ν€ | ν΄λΌμ΄μΈνΈμ μ μ₯λμ΄μ μλ²μ μμ²μ λΉ λ₯΄λ€. |
μΈμ | μ€μ μ μ₯λ μ λ³΄κ° μλ²μ μμΌλ―λ‘ μλ²μ μ²λ¦¬κ° νμν΄ μΏ ν€λ³΄λ€ λ리λ€. |
μ°Έκ³
- doooyeon.github.io/2018/09/10/cookie-and-session.html
- chrisjune-13837.medium.com/web-%EC%BF%A0%ED%82%A4-%EC%84%B8%EC%85%98%EC%9D%B4%EB%9E%80-aa6bcb327582