HTTP
νλ‘ν μ½μ λΉμ°κ²°(connectionless)
무μν(stateless)
νΉμ§μ κ°μ§λ―λ‘ μλ²λ ν΄λΌμ΄μΈνΈμ μ΄μ μμ²λ€μ κΈ°μ΅νμ§ μμΌλ©°, μ΄νμ μ€λ μμ²λ€μ κ°κ° λ
립μ
μΌλ‘ μ²λ¦¬νλ€. λ°λΌμ μ¬μ©μ μΈμ¦
μ νκ³ λ μ΄νμ λ€λ₯Έ μμ²λ€μ 보λ΄λλΌλ μλ²λ ν΄λΉ μμ²μ΄ μΈμ¦
λ μ¬μ©μλ‘λΆν° μ¨ κ²μΈμ§ μ κΈΈμ΄ μλ€. μ΄λ¬ν HTTP
νλ‘ν μ½μ νΉμ±μ 보μνκΈ°μν΄ ν΄λΌμ΄μΈνΈλ 맀 μμ²λ§λ€ μμ μ΄ λ‘κ·ΈμΈμ μννκ³ μμμ μ¬μ©ν κΆλ¦¬κ° μλ μ¬μ©μμμ μλ²μΈ‘μ νμΈμμΌμ€μΌνλ€. κ·Έλμ μμ²λ§λ€ μ¬μ©μμ λν μΈμ¦
μ΄ μΆκ°μ μΌλ‘ νμνλ€.
μΉ μΈμ¦ λ°©μ
μ κ²μν΄λ³΄λ©΄ Cookie
μ Session
μ λΉκ΅νλ κΈμ΄ λ§λ€. μ²μμ λλ μ μ΄ λμ λΉκ΅ν΄μΌ νλμ§ λͺ°λλ€. μλ² μͺ½μ μ¬μ©μ μΈμ¦ μ 보λ₯Ό μ μ₯νλ Session
λ°©μμ μΈμ¦λ κ²°κ΅ ν΄λΌμ΄μΈνΈ μͺ½μμ μμ μ΄ λꡬμΈμ§ μ²μμ μλ²λ‘λΆν° λ°κΈλ°μ SESSIONID
λ₯Ό μ μ₯νκ³ μ΄ν μμ²λ§λ€ 보λ΄κΈ° μν΄ Cookie
λ₯Ό μ¬μ©νλλ° λ§μ΄λ€. κ·Έλμ νν°λκ» μ§λ¬Ένλλ° κ³Όκ±°μλ Cookie
λ§ μ¬μ©νλ μΈμ¦ λ°©μμ μ¬μ©νλ€κ³ νλ€π€ μ¬μ©μλ μλ²λ‘ λΆν° λ§λ£μΌ
μ΄λ¦
κ°
κ²½λ‘
μ λ³΄κ° λ΄κΈ΄ λ°μ΄ν°λ₯Ό λ°μ λΈλΌμ°μ μ Cookie
μ μ μ₯ν΄λκ³ μ΄ν μμ²λ§λ€ μμ² ν€λ
μ Cookie
κ°μ μ½μ
ν΄μ 보λΈλ€.
Session
μ μλ²μΈ‘μμ μ¬μ©μμμ μ°κ²°μ κ΄λ¦¬νλ λ°©μμ΄λ€. μ¬μ©μμ μΈμ¦
μ μ°¨λ₯Ό κ±°μΉλ©΄ μλ²μΈ‘μμλ SESSIONID
κ°μ μμ±ν΄μ μ¬μ©μ μ 보μ 맀νλ μ μλλ‘ μλ²μμ λ©λͺ¨λ¦¬μ SESSIONID
λ₯Ό μ μ₯νκ³ κ΄λ¦¬νλ€. μμ±ν SESSIONID
λ₯Ό μ¬μ©μμκ² λ³΄λ΄λ©΄, μ¬μ©μλ SESSIONID
λ₯Ό Cookie
μ μ μ₯ν΄λκ³ Cookie
μΈμ¦ λ°©μκ³Ό λ§μ°¬κ°μ§λ‘ μμ²κ³Ό ν¨κ» Cookie
κ°μ μμ² ν€λ
μ 보λΈλ€.
JWT
λ μνΈν ν ν° κΈ°λ° μΈμ¦ λ°©μμ΄λ€. μλ²λ μ¬μ©μ μ 보λ₯Ό κΈ°λ°μΌλ‘ JSON
νμμ λ°μ΄ν°λ₯Ό μμ±νκ³ μ΄λ₯Ό μνΈνν΄μ μ¬μ©μ μΈ‘μ μ λ¬νλ€. μ λ¬λ°μ λ΄μ©μ λΈλΌμ°μ μ Local Storage
μ μ μ₯νκ³ μ¬μ©μ μΈμ¦μ΄ νμν¨μ λ°λΌ μμ² ν€λ
μ Authorization
κ°μ λ£μ΄μ μ λ¬ν μ μλ€.
OAuth
λ μ¬μ©μ μΈμ¦μ λ€λ₯Έ μλΉμ€λ‘ μμνλλ‘ νλ νλ‘ν μ½μ΄λ€. μ체 μλΉμ€μμ μ§μ μ¬μ©μ μΈμ¦ κ³Όμ μ κ±°μΉμ§ μκ³ λ€λ₯Έ μΉ μλΉμ€μ λ±λ‘λ μ¬μ©μ μ 보λ₯Ό μ¬μ©νλ λ°©μμ΄λ€. μμ μ 리νλ Cookie
Session
JWT
λ°©μμμλ μ¬μ©μκ° μλ²μͺ½μΌλ‘ μΈμ¦μ μμ²νμ§λ§, μ΄μ λ€λ₯΄κ² μΈμ¦μ μμ²νλ 주체
λ μ°λ¦¬μ μ ν리μΌμ΄μ
μλ²κ° λλ€. μ¬μ©μκ° μΈμ¦ μμ²μ 보λ΄λ©΄ μλ²λ μ΄λ₯Ό μ°λ¦¬μ μΉ μ ν리μΌμ΄μ
μλ²κ° μλ λ€λ₯Έ μΈμ¦ μλ²μΈ μ 3μ μΉ μλ²μΈ Authorization Sever
λ‘ μ λ¬ν΄μ μΈκ°λ₯Ό νμΈλ°κ³ Access Token
μ λ°κΈ λ°λλ€. μ΄ν μ°λ¦¬μ μ ν리μΌμ΄μ
μμ μ¬μ©νκ³ μΆμ μ¬μ©μ μ 보μ κ΄λ ¨λ μμμ κ°μ§κ³ μλ μλ²μΈ Resource Sever
λ‘ Access Token
μ 보λ΄μ΄ μΈμ¦ ν μμμ νλνκ² λλ€.
Β Authentication Β
μ¬μ©μμ μ μμ νμΈνλ νμ
Β Authorization Β
μ¬μ©μμ κΆνμ νμΈνλ νμ
Β Cookie Β
λΈλΌμ°μ μ μ₯μ
Β Session Β
ν΄λΌμ΄μΈνΈμ μλ²μ μ°κ²° λ¨μ
|__ μΌμ μκ°λμ κ°μ ν΄λΌμ΄μΈνΈλ‘ λΆν° λ€μ΄μ€λ μΌλ ¨μ μꡬλ₯Ό νλμ μνλ‘ λ³΄κ³ κ·Έ μνλ₯Ό μΌμ νκ² μ μ§μν€λ κΈ°μ
Β JWT Β
μΉ μ¬μ©μ μΈμ¦μ μν μνΈνλ JSON νμμ ν ν°
Β OAuth Β
μ¬μ©μ μΈμ¦μ λ€λ₯Έ μλΉμ€λ‘ μμνκΈ° μν νλ‘ν μ½
π shaking shaking. "Session μ΄λ?", shaking blog.
π RyanGomdoriPooh. "μΏ ν€μ μΈμ κ°λ ", Ryan Server, 11 Oct. 2021.
π CHELSEA. "[λ€νΈμν¬] HTTP Cookie vs Session", chelsea.log, 18 May. 2020.
π Bizagi. "OAuth authentication"
π amuse. "[OAuth] 무μμΈκ°", 14 Jan. 2021.
π thinking2. "OAUTH 2.0 λν μ·¨μ½μ κ³Ό 보μ κ³ λ €μ¬ν", Flatinum, 25 Nov. 2019.
π MOONGCHI. "OAuth2μ 보μμ·¨μ½μ κ³Ό ν΄κ²°λ°©λ²", λ€μν μ¬κ³ κ° μλ κ³³, 03 Nov. 2019.