Last updated
Last updated
HTTP νλ‘ν μ½μ μ΄μ©ν ν΅μ μ κΈ°λ³Έμ μΌλ‘ λ¨λ°©ν₯μ΄λ€. Clientλ‘λΆν° μμ±λ Request Packetμ΄ μλ²μκ² μ λ¬λλ©΄, μλ²λ μ΄μ λν Reseponse Packetμ μ 곡νλ λ°©μ
μΌλ‘ ν΅μ μ΄ μ΄λ£¨μ΄μ§λ€.
μ΄λ¬ν λ¨λ°©ν₯ ν΅μ μ λ¨μ μ μλ²μ λ³νκ° μλλΌλ, λ°λμ ν΄λΌμ΄μΈνΈκ° μμ²μ ν΄μΌ ν΄λΉ λ³νλ₯Ό νμΈν μ μλ€
λ κ²μ΄λ€. μΉμμΌ
μ μλ²κ° μμ² μμ΄λ ν΄λΌμ΄μΈνΈμκ² λ°μ΄ν°λ₯Ό μ μ‘
ν μ μλλ‘ μλ°©ν₯ ν΅μ νκ²½μ μ 곡
ν¨μΌλ‘μ¨ μ΄λ¬ν λ¨μ μ ν΄κ²°νλ€.
μλ²μ ν΄λΌμ΄μΈνΈ κ° μλ°©ν₯ ν΅μ μ μν νλ‘ν μ½
ws://
λ‘ μμνλ©°, TCP/IP κΈ°λ°μΌλ‘ λμνλ€.
ν΄λΌμ΄μΈνΈκ° μλ²μκ² νΈλμμ΄νΉ(websocket μ°κ²°μ μν νμ)μ ν΄λΉνλ HTTP μμ² μ μ‘
HTTP 1.1
μ΄μμ λ²μ μ μ¬μ©ν΄μΌ ν¨
HTTP λ©μλλ λ°λμ GET
Upgrade: websocket
ν€λλ₯Ό ν¬ν¨
Connection: Upgrade
ν€λλ₯Ό ν¬ν¨
ν΄λΌμ΄μΈνΈ/μλ² κ° μΈμ¦μ μν Sec-WebSocket-Key
ν€λλ₯Ό ν¬ν¨
μλ²κ° μΉμμΌ λ²μ μ μΈμν μ μλ κ²½μ° λ²μ λͺ
μλ₯Ό μν΄ Sec-WebSocket-Version
ν€λλ₯Ό ν¬ν¨
μλ²λ 1λ² μμ²μ λν μλ΅μ μ μ‘
μ΄μ λΆν° μΉμμΌ νλ‘ν μ½μ μ¬μ©ν κ²μ΄λΌλ μν μ½λ 101
μ μ¬μ©
λ§μ°¬κ°μ§λ‘ Upgrade
, Connection
ν€λλ₯Ό ν¬ν¨
ν΄λΌμ΄μΈνΈμ Sec-WebSocket-Key
κ°μ κ³Ό μ΄μ΄ λΆμ΄κ³ SHA-1 ν΄μ μκ³ λ¦¬μ¦μΌλ‘ μνΈννκ³ base64λ‘ μΈμ½λ©ν κ°μ λ΄μ Sec-WebSocket-Accept
ν€λλ₯Ό ν¬ν¨
λ§μ½ μ°κ²°μ μ€ν¨νλ€λ©΄ μλ²λ μ¦μ 400
μ λ°ννκ³ μ¦μ μμΌμ μ’
λ£ν΄μΌ ν¨
μ±κ³΅μ μΌλ‘ νλ‘ν μ½μ΄ μΉμμΌ(ws)μΌλ‘ λ³κ²½λ κ²½μ°, μ΄μ μλ²μ ν΄λΌμ΄μΈνΈλ μΈμ λ λ©μμ§λ₯Ό μ μ‘ν μ μλ€. (μ¦, μλ°©ν₯ ν΅μ μ ν μ μλ€.)