HTTP(HyperText Transfer Protocol)
Last updated
Was this helpful?
Last updated
Was this helpful?
HTML/TEXT, IMAGE, μμ±, μμ, νμΌ, JSON, XML λ± λ€μν λ°μ΄ν°λ₯Ό μ μ‘ κ°λ₯ν νλ‘ν μ½λ‘, νμ¬ λ€νΈμν¬ ν΅μ μμ λ§μ΄ μ¬μ©λλ νλ‘ν μ½μ΄λ€. μ£Όλ‘ μλ²μ ν΄λΌμ΄μΈνΈ μ¬μ΄μμ μμ²/μλ΅μ μ£Όκ³ λ°λλ° μ¬μ©λκ³ μλ€.
HTTP/0.9: μ΄κΈ° λ²μ (GET λ©μλλ§ μ§μ / ν€λ μμ)
HTTP/1.0: λ©μλμ ν€λλ₯Ό μΆκ°λ‘ μ§μνλ λ²μ (μ§μ μ°κ²° λ―Έμ§μ)
HTTP/1.1: νμ¬ κ°μ₯ λ리 μ¬μ©λλ λ²μ μΌλ‘, μ§μ μ°κ²°, νμ΄νλΌμ΄λ(pipelining)μ μ§μνμ¬ μ±λ₯ ν₯μ
HTTP/2: HTTP/1.1μ μ±λ₯ λ¬Έμ λ₯Ό 보μνκΈ° μν΄ μ€κ³λ λ²μ μΌλ‘, ν€λ μμΆ, μ€νΈλ¦Ό λ€μ€ν λ±μΌλ‘ μ±λ₯μ κ°μ
HTTP/3: TCP λμ UDP νλ‘ν μ½ μμμ μλνλ©°, κΈ°μ‘΄ TCP κΈ°λ°μ λ¬Έμ μ μ κ°μ νμ¬ λ λΉ λ₯Έ μ±λ₯ μ 곡
TCP: HTTP/1.1, HTTP/2
UDP: HTTP/3
HTTP/3λ UDP νλ‘ν μ½ μμ μ ν리μΌμ΄μ λ 벨μμ μ±λ₯μ μ΅μ ννλλ‘ μλ‘ μ€κ³λ νλ‘ν μ½μ΄λ€. ()
μμ²-μλ΅ κΈ°λ°μ Client
-Server
ꡬ쑰λ₯Ό κ°μ§
request
λ₯Ό 보λ΄λ©΄ response
λ‘ λμμ€λ©°, request
μμ΄λ response
κ° μ‘΄μ¬νμ§ μμ
μνλ₯Ό μ μ§νμ§ μμ(stateless
)
HTMP / μ΄λ―Έμ§ / μμ / νμΌ / JSON / XML λ± λ€μν λ°μ΄ν°λ₯Ό μ μ‘ κ°λ₯(λ―Έλμ΄ λ 립μ )
λΉμ°κ²°μ±(connectionless
)
μ§μ μ°κ²°(Keep-Alive
)μ ν΅ν΄ νλμ TCP 컀λ₯μ
μ¬λ¬ κ°μ μμ²κ³Ό μλ΅μ μ²λ¦¬(Three-way Handshakeλ₯Ό ν λ²λ§ νλ©΄ λκΈ° λλ¬Έμ μ±λ₯ ν₯μ)
GET
/ POST
/ PUT
/ HEAD
/ DELETE
/ OPTIONS
λ©μλ μ‘΄μ¬
HTTPλ λ€μν λ°©μμΌλ‘ λ°μ΄ν°λ₯Ό μ μ‘νλλ°, μ΄ λ°©μμ λ©μμ§ μ μ‘ μ μ¬μ©νλ ν€λμ λ°λΌ κ²°μ λλ€.
λ¨μ μ μ‘(Simplest Transfer)
Content-Length
λ©μμ§ λ°λμ ν¬κΈ°λ₯Ό μλ €μ€
μμΆ μ μ‘(Compressed Transfer)
Content-Encoding
λ©μμ§ λ°λλ₯Ό μμΆν λ°©μμ μλ €μ€
λΆν μ μ‘(Chunked Transfer)
Transfer-Encoding
λ©μμ§ λ°λλ₯Ό μ¬λ¬ μ‘°κ°μΌλ‘ λλμ΄ μ μ‘
λ²μ μ μ‘(Ranged Transfer)
Content-Range
λ©μμ§ λ°λμ μΌλΆλ§ μμ²
ν΄λΌμ΄μΈνΈκ° μλ²μκ² μ΄λ€ 컨ν μΈ λ₯Ό μνλμ§ μλ €μ£Όλ κΈ°λ₯μΌλ‘, μλ²λ μ΄ μ 보λ₯Ό ν΅ν΄ κ°μ₯ μ μ ν 컨ν μΈ λ₯Ό μ 곡ν μ μλ€.
ν΄λΌμ΄μΈνΈλ request message
μ Accept* ν€λ νλλ₯Ό μ¬μ©νμ¬ μμ²
μλ²λ response message
μ Content* ν€λ νλλ₯Ό μ¬μ©νμ¬ μλ΅
μΈμ΄ νκ·Έ(Accept-Language
) / λ¬Έμμ
(Accept-Charset
) / μΈμ½λ©(Accept-Encoding
) / λ―Έλμ΄ νμ
(Accept
) λ±μ μ¬μ©
0 ~ 1 μ¬μ΄μ Quality Value(QValue)λ₯Ό μ¬μ©νμ¬ μ°μ μμλ₯Ό λνλ(Accept-Language: ko-KR, en-US;q=0.9, en;q=0.8
)
request
μ λν μλ²μ μλ΅ μνλ₯Ό λνλ΄λ μΈ μ리 μ«μ μ½λλ‘ κ΅¬μ±λμ΄ μμΌλ©°, μλ΅ μνλ₯Ό ν¬κ² 5κ°μ§λ‘ λΆλ₯ν μ μλ€.
1xx
information
리νμ€νΈλ₯Ό λ°μλ€μ¬ μ²λ¦¬ μ€
2xx
success
리νμ€νΈ μ μ μ²λ¦¬
3xx
redirection
리νμ€νΈλ₯Ό μλ£νλ €λ©΄ μΆκ° νλ νμ
4xx
client error
리νμ€νΈ μ΄ν΄ λΆκ°λ₯
5xx
server error
μλ²κ° 리νμ€νΈ μ²λ¦¬ μ€ν¨
ν
μ€νΈ/μμ/μ΄λ―Έμ§ λ± λ€μν λ°μ΄ν°λ₯Ό λ€λ£¨κΈ° μν κΈ°λ₯μΌλ‘ Content-Type
ν€λ νλλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°μ μ’
λ₯λ₯Ό λνλΈλ€.
μΉ μλ²μμ MIME νμ
μ μ§μ νλ©΄ μΉ λΈλΌμ°μ λ λ€λ£° μ μλ κ°μ²΄μΈμ§ νμΈνκ³ , ν΄λΉ νμ
μ λ§λ μ ν리μΌμ΄μ
μ μ€ννμ¬ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ€.
μ΄λ―Έμ§ λ±μ λ°μ΄λ리 λ°μ΄ν°λ₯Ό μμ€ν€(ASCII) λ¬Έμμ΄μ μΈμ½λ©νλ λ°©λ²κ³Ό λ°μ΄ν° μ’ λ₯λ₯Ό λνλ΄λ λ°©λ² λ±μ κ·μ
νμ₯ μ¬μμ μλ λ©ν°ννΈ(Multipart)λΌκ³ νλ μ¬λ¬ λ€λ₯Έ μ’ λ₯μ λ°μ΄ν°λ₯Ό μμ©νλ λ°©λ² μ¬μ©
HTTP
λ λ©ν°ννΈμ λμνκ³ μμ΄ νλμ λ©μμ§ λ°λ λ΄λΆμ μ¬λ¬ μν°ν°λ₯Ό ν¬ν¨μν¬ μ μμ
μ μ‘ λ°©μ
multipart/form-data: Web νΌμΌλ‘λΆν° νμΌ μ λ‘λμ μ¬μ©
multipart/byteranges: μν μ½λ 206(Partial Content) response message
κ° λ³΅μ λ²μμ λ΄μ©μ ν¬ν¨ν λ μ¬μ©
μ°Έκ³ μλ£
μμΈν λ΄μ©μ μ°Έκ³