π[Network] μΉμμΌ(WebSocket)?
μΉμμΌ(WebSocket)μ μΉ λΈλΌμ°μ μ μλ² κ°μ μλ°©ν₯ ν΅μ μ κ°λ₯νκ² νλ κ³ κΈ κΈ°μ μ
λλ€.
μ΄λ HTTP νλ‘ν μ½μ λΉν΄ μ§μμ μ΄κ³ μ€μκ°μ ν΅μ μ κ°λ₯νκ² ν©λλ€.
π μΉμμΌμ μ£Όμ νΉμ§.
1. μλ°©ν₯ ν΅μ : μΉμμΌμ μλ²μ ν΄λΌμ΄μΈνΈ κ°μ μλ°©ν₯ ν΅μ μ±λμ μ 곡ν©λλ€.
μ΄λ ν΄λΌμ΄μΈνΈμ μλ²κ° μλ‘μκ² λ°μ΄ν°λ₯Ό λμμ λ³΄λΌ μ μμμ μλ―Έν©λλ€.
2. μ€μκ° ν΅μ : μΉμμΌμ μ€μκ° ν΅μ μ μν΄ μ€κ³λμμ΅λλ€.
μ΄λ μ¨λΌμΈ κ²μ, μ±ν
μ ν리μΌμ΄μ
, μ€μκ° λ°μ΄ν° μ€νΈλ¦¬λ° λ±μ λ§€μ° μ μ©ν©λλ€.
3. μ§μμ μΈ μ°κ²° : μΉμμΌ μ°κ²°μ ν λ² μ립λλ©΄ μ§μμ μΌλ‘ μ μ§λ©λλ€.
μ΄λ λΈλΌμ°μ κ° μλ²μ μ°κ²°μ λ§Ίμ ν ν΄λΉ μ°κ²°μ μ§μμ μΌλ‘ μ μ§νλ©° λ°μ΄ν°λ₯Ό κ΅ννλ€λ κ²μ μλ―Έν©λλ€.
4. ν¨μ¨μ μΈ λ°μ΄ν° μ μ‘ : μΉμμΌμ HTTPμ μ€λ²ν€λλ₯Ό μ€μ¬ ν¨μ¨μ μΈ λ°μ΄ν° μ μ‘μ κ°λ₯νκ² ν©λλ€.
λ°μ΄ν° ν¨ν·μ΄ μκ³ , μ°κ²° μ립 νμλ μΆκ°μ μΈ ν€λ μμ΄ λ°μ΄ν°λ₯Ό μ μ‘ν μ μμ΅λλ€.
π μλ μ리.
1. νΈλμ
°μ΄ν¬ : μΉμμΌ μ°κ²°μ HTTP μμ²μ ν΅ν΄ μμλ©λλ€.
μ΄ μμ²μ μλ²μ μΉμμΌ μ°κ²°μ μμ²νλ βμ
κ·Έλ μ΄λ μμ²(Upgrade Request)βμ ν¬ν¨ν©λλ€.
μλ²κ° μ΄λ₯Ό μλ½νλ©΄, HTTP μ°κ²°μ μΉμμΌ μ°κ²°λ‘ βμ
κ·Έλ μ΄λβλ©λλ€.
2. μ°κ²° μ립 : νΈλμ
°μ΄ν¬ κ³Όμ μ΄ μ±κ³΅μ μΌλ‘ μλ£λλ©΄, μΉμμΌ μ°κ²°μ΄ μ립λ©λλ€.
μ΄ μμ λΆν° ν΄λΌμ΄μΈνΈμ μλ² κ°μ μλ°©ν₯ λ°μ΄ν° μ μ‘μ΄ κ°λ₯ν΄μ§λλ€.
3. λ°μ΄ν° νλ μ κ΅ν : λ°μ΄ν°λ νλ μ λ¨μλ‘ κ΅νλ©λλ€.
κ° νλ μμ ν
μ€νΈ λλ λ°μ΄λ리 λ°μ΄ν°λ₯Ό ν¬ν¨ν μ μμΌλ©°, μΉμμΌ νλ‘ν μ½μ μ΄λ₯Ό μ μνκ² μ μ‘ν©λλ€.
4. μ°κ²° μ’
λ£ : ν΄λΌμ΄μΈνΈ λλ μλ² μ΄λ ν μͺ½μ΄ μ°κ²°μ μ’
λ£νκΈ°λ₯Ό μμ²ν μ μμΌλ©°, μ°κ²°μ΄ μ’
λ£λλ©΄ λ μ΄μ λ°μ΄ν°λ₯Ό κ΅νν μ μμ΅λλ€.
π μ¬μ© μ¬λ‘.
* μ±ν
μ ν리μΌμ΄μ
: μ€μκ°μΌλ‘ λ©μμ§λ₯Ό μ£Όκ³ λ°λλ° μ¬μ©λ©λλ€.
* μ¨λΌμΈ κ²μ : μ€μκ° μνΈμμ©κ³Ό κ²μ μνμ λΉ λ₯Έ μ
λ°μ΄νΈλ₯Ό μν΄ μ¬μ©λ©λλ€.
* κΈμ΅ μ ν리μΌμ΄μ
: μ£Όμ μμμ μ€μκ° κ°κ²© μ
λ°μ΄νΈ λ±μ μ¬μ©λ©λλ€.
* λΌμ΄λΈ μ€νΈλ¦¬λ° : μ€μκ° λΉλμ€ λλ μ€λμ€ μ€νΈλ¦¬λ°μ μ¬μ©λ μ μμ΅λλ€.
μΉμμΌμ μΉμ μ€μκ°, λνν μ ν리μΌμ΄μ μ μν κ°λ ₯ν λꡬλ‘, κΈ°μ‘΄μ HTTP κΈ°λ° ν΅μ λ³΄λ€ λ λ€μ΄λλ―Ήνκ³ ν¨μ¨μ μΈ λ°©μμ μ 곡ν©λλ€.