Connection ν€λμ ν¬ν¨λλ 3κ°μ§ ν ν°
μ΄ μ»€λ₯μ
μλ§ ν΄λΉλλ ν€λ λμ΄
컀λ₯μ
μ λν λΉνμ€ μ΅μ
μμ
μ΄ μλ£λλ©΄ 컀λ₯μ
μ΄ μ’
λ£λμ΄μΌν¨
Connection ν€λμ ν¨κ» λ©μμ§λ₯Ό μ λ¬λ°μΌλ©΄, μμ²μ κΈ°μ λμ΄ μλ λͺ¨λ μ΅μ
μ μ μ©νλ€.
κ·Έλ¦¬κ³ λ€μ μλ²μ λ©μμ§λ₯Ό μ λ¬νκΈ°μν΄ Connection ν€λ, Connection ν€λμ κΈ°μ λμ΄ μλ λͺ¨λ ν€λλ₯Ό μμ νλ€. (hop-by-hop ν€λ μμ )
컀λ₯μ
κ΄λ¦¬κ° μ λλ‘ μ΄λ€μ§μ§ μμΌλ©΄ TCP μ±λ₯μ΄ μ νλ μ μλ€. μλ₯Ό λ€μ΄ μμ°¨μ μΌλ‘ νΈλμμ
μ μ²λ¦¬νμ¬ κ° νΈλμμ
λ§λ€ 컀λ₯μ
μ λ§Ίλλ€λ©΄ 컀λ₯μ
λ§Ίλ μκ° + slow start μ§μ°μ΄ λ°μν μ μλ€.
μ΄λ¬ν μ§μ°μ λ°©μ§νκΈ° μν λ€κ°μ§ κΈ°μ μ΄ μλ€.
λ³λ ¬ 컀λ₯μ
μ 컀λ₯μ
μ μ§μ° μκ°μ κ²ΉμΉκ² νμ¬ μ΄ μ§μ° μκ°μ μ€μΌ μ μλ 컀λ₯μ
λ°©μμ΄λ€.
μΌλ°μ μΌλ‘ λ λΉ λ₯΄κΈ΄ νμ§λ§ νμ λ λΉ λ₯Έ κ²μ μλλ€. (ex. λ€νΈμν¬ λμνμ΄ μ’μ λ)
λν λ€μμ 컀λ₯μ
μ λ§Ίμ΄ λ©λͺ¨λ¦¬λ₯Ό λ§μ΄ μλͺ¨νκ³ μ체μ μΈ μ±λ₯ λ¬Έμ λ₯Ό λ°μμν¨λ€.
μ²λ¦¬κ° μλ£λ νμλ TCP 컀λ₯μ μ μ μ§νμ¬ μμΌλ‘μ HTTP μμ²μ΄ λ€μ΄μ¬ λ μ¬μ¬μ©νλ 컀λ₯μ λ°©μμ΄λ€. λΉ μ§μ컀λ₯μ μ κ²½μ° κ° μ²λ¦¬κ° λλ λλ§λ€ 컀λ₯μ μ λμ§λ§, μ§μ 컀λ₯μ μ ν΄λΌμ΄μΈνΈ or μλ²κ° 컀λ₯μ μ λκΈ° μ κΉμ§ 컀λ₯μ μ μ μ§νλ€.
μ§μ + λ³λ ¬ 컀λ₯μ μ λ°©μ
keep-alive
Connection ν€λμ
keep-alive
λ₯Ό ν¬ν¨μν¨λ€. μ΄λ¬ν μμ²μ λ°μ μλ²λ λ€μ μμ²λ λκ°μ 컀λ₯μ μ λ°κ³ μ νλ€λ©΄ μλ΅μkeep-alive
λ₯Ό ν¬ν¨μν€λ©΄ λλ€. μλ΅μ ν΄λΉ ν€λκ° μμΌλ©΄ ν΄λΌμ΄μΈνΈλ keep-aliveλ₯Ό μ§μνμ§ μμΌλ©°, μλ΅μ΄ μ μ‘λ μ΄ν μλ²κ° 컀λ₯μ μ λμ κ²μΌλ‘ μΆμ νλ€.
Content_Length κ°κ³Ό λ©ν°ννΈ λ―Έλμ΄ νμμ κ°μ§κ±°λ or μ²ν¬ μ μ‘ μΈμ½λ©μΌλ‘ μΈμ½λ© λμ΄μ νΈλμμ μ΄ λλλ μμ μ κΈ°μ‘΄ λ©μμ§μ λμ μ μ μλλ‘ ν΄μΌνλ€!
μ§μ 컀λ₯μ
HTTP/1.1μμλ keep-aliveλ₯Ό μ§μνμ§ μλ λμ ,
κ°μ λ μ§μ 컀λ₯μ
μ μ§μνλ€. HTTP/1.0μ keep-aliveμ λ¬λ¦¬ λ³λ μ€μ μ νμ§ μλ ν, λͺ¨λ 컀λ₯μ μ μ§μ 컀λ₯μ μΌλ‘ μ·¨κΈνλ€.
νΈλμμ μ λκΈ° μν΄μλConnection:close
λ₯Ό ν¬ν¨ν΄μΌνλ€.
μλ λμΌνκ² Content_Length κ° or μ²ν¬ μ μ‘ μΈμ½λ©μΌλ‘ μΈμ½λ© λμ΄μΌνλ€.
HTTP/1.1 νλ½μλ ν΄λΌμ΄μΈνΈ, μλ²μ λν΄ λ³λμ μ§μ 컀λ₯μ μ λ§Ίκ³ κ΄λ¦¬ν΄μΌνλ€.
μ€κ°μ λμ΄μ§λ 컀λ₯μ μ 볡ꡬν μ μμ΄μΌλ§ νλ€.
HTTP/1.1μ μ§μ 컀λ₯μ
μ ν΅ν΄μ μμ²μ νμ΄ν λΌμ΄λ
ν μ μλ€. (μ€νμ€μΈ λͺ
λ Ήμ΄ λλκΈ° μ μ λ€λ₯Έ λͺ
λ Ήμ μ€νμ μμνλ€.)
λ©±λ± μμ²
: GET, HEAD, PUT, DELETE, TRACE, OPTIONS컀λ₯μ μ μλ¬κ° μλλΌλ μΈμ λ μ§ λμ μ μλ€. λν, μμμΉ λͺ»νκ² μ»€λ₯μ μ΄ λ겨λ μ μ ν λμμ ν μ μμ΄μΌνλ€.
νΈλμμ
μν μ€μ 컀λ₯μ
μ΄ λκΈ°λ©΄, ν΄λΉ νΈλμμ
μ μ¬μλν΄λ λ¬Έμ κ° μλ€λ©΄ 컀λ₯μ
μ λ€μ λ§Ίκ³ , ν λ² λ μ μ‘νλ€.
=> λ¬Έμ κ° μκΈ°λ κ²½μ°λ POST(λΉ λ©±λ±)λ‘ μ μ‘νμ κ²½μ°. λΉλ©±λ± μμ²μ λ€μ 보λ΄μΌνλ©΄, μ΄μ μμ²μ λν μλ΅μ λ°μ λκΉμ§ κΈ°λ€λ¦°λ€.
TCP 컀λ₯μ μ μ λ ₯ ν, μΆλ ₯ ν μλ°©ν₯μΌλ‘ μ΄λ€μ Έμλ€.
close()
λ₯Ό νΈμΆνλ©΄ μ
, μΆλ ₯ μ±λμ 컀λ₯μ
μ΄ λͺ¨λ λμ΄μ§λ€.shutdown()
μ νΈμΆνλ€. λ¨μ HTTPλ μ 체 λκΈ°λ§μ μ¬μ©ν μ μμ§λ§, κ° ν΄λΌμ΄μΈνΈ, μλ², νλ½μμ ν΅μ ν λ, κ·Έλ€κ³Ό νμ΄νλΌμΈ μ§μ 컀λ₯μ μ μ¬μ©ν λλ μμμΉλͺ»ν μ°κΈ° μλ¬λ₯Ό μλ°©νκΈ° μν΄ μ λ° λκΈ°λ₯Ό μ¬μ©ν΄μΌνλ€.
ν΄λΌμ΄μΈνΈμμ μ
λ ₯ μ±λ
μ λλ κ²μ μννλ€.
κ·Έλμ, μμ μ μΆλ ₯ μ±λμ λ¨Όμ λκ³ , λ€λ₯Έ μͺ½μ μλ μΆλ ₯ μ±λμ΄ λκΈ°λ κ²μ κΈ°λ€λ¦°λ€.
μ΄ κΈμ HTTP μλ²½ κ°μ΄λ
λ₯Ό μ½κ³ μ 리ν κΈμ
λλ€.
μ μκΆ λ° κΈ°ν λ¬Έμ κ° μμΌλ©΄ λκΈλ‘ μλ €μ£ΌμΈμ.
κ°μ¬ν©λλ€.