κΉμνλμ λͺ¨λ κ°λ°μλ₯Ό μν HTTP μΉ κΈ°λ³Έ μ§μμ μκ°νλ©΄μ μ 리ν λ΄μ©μ λλ€.
1. HTTP(HyperText Transfer Protocol)
λ¬Έμ κ°μ λ§ν¬λ₯Ό ν΅ν΄μ νμ΄νΌν μ€νΈ λ¬Έμλ₯Ό ν΅ν΄μ μ°κ²°νλ νλ‘ν μ½ μ λλ€.
HTTP νν ν μ½μ HTML, TEXT, IMAGE, μμ±, μμ, νμΌ, JSON, XML (API) λ± λͺ¨λ ννμ λ°μ΄ν°λ₯Ό λ΄μμ μ μ‘μ΄ κ°λ₯νκ³ μ¬μ§μ΄ μλ²κ°μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ λλ μ¬μ© ν©λλ€.
1.1 HTTP μμ¬
1. HTTP/0.9 (1991λ ) : GET λ©μλλ§ μ§μ, HTTP ν€λX
2. HTTP/1.0 (1996λ ) : λ©μλ, ν€λ μΆκ°
3. HTTP/1.1 (1997λ ) : κ°μ₯ λ§μ΄ μ¬μ©νκ³ μ°λ¦¬μκ² κ°μ₯ μ€μν λ²μ
* RFC2068 (1997λ ) β‘οΈ RFC2616 (1999λ ) β‘οΈ RFC7230~7235 (2014λ )
4. HTTP/2 (2015λ ) : μ±λ₯ κ°μ
5. HTTP/3 (μ§νμ€) : TCP λμ μ UDP μ¬μ©, μ±λ₯ κ°μ
1. 2 HTTP κΈ°λ° νλ‘ν μ½
- TCP: HTTP/1.1, HTTP/2λ TCP κΈ°λ°
- UDP: HTTP/3
- νμ¬λ λλΆλΆ HTTP/1.1μ μ¬μ©νλλ°, HTTP/2, HTTP/3λ μ μ°¨ μ¦κ°νκ³ μμ΅λλ€.
- TCP ν΅μ μ 3 way handshake λλ¬Έμ μ λ’°μ±κ³Ό μ°κ²°μ±μ 보μ₯νμ§λ§, μ΄ κ³Όμ μ 걸리λ μκ°λ§νΌ μλκ° λ¨μ΄μ§ μ λ°μ μμ΅λλ€. κ·Έλ κΈ°μ HTTP/3μμλ UDP νλ‘ν μ½μ μ ν리μΌμ΄μ λ 벨μμ μ¬μ€κ³λ₯Ό νμ¬ μλλ₯Ό λνμ΅λλ€.
2. HTTP νΉμ§
HTTP νλ‘ν μ½μ κΈ°λ³Έμ μΌλ‘ ν΄λΌμ΄μΈνΈ μλ² κ΅¬μ‘°λ‘ λμ ν©λλ€.
- 무μν νλ‘ν μ½(Stateless)μ΄κ³ λΉμ°κ²°μ±μ΄λΌλ νΉμ§
- HTTP λ©μμ§λ₯Ό ν΅ν΄μ ν΅μ μ νκ³ λ¨μνκ³ νμ₯ κ°λ₯
2.2 ν΄λΌμ΄μΈνΈ μλ² κ΅¬μ‘°
β Request Response ꡬ쑰
2.3 Stateful, Stateless
β μν μ μ§ (Stateful)
μλ²κ° ν΄λΌμ΄μΈνΈμ μνλ₯Ό 보쑴 ν©λλ€.
- ν΄λΌμ΄μΈνΈκ° μνμ ꡬμ ν λ μν μ 보μ κ²°μ μ 보λ₯Ό 맀μΉλ μλ²λ‘ κ³μ μ μ§ν΄μΌ ν©λλ€.
- μ€κ°μ μ μ§ν΄μΌν μλ²κ° μ₯μ κ° λ°μνλ©΄ λ€λ₯Έ μλ²λ‘ λ°λκ² λλ©΄ ν΄λΌμ΄μΈνΈκ° λ€μ μ 보λ₯Ό μμ²μ ν΄μΌ ν©λλ€.
β 무μν (Stateless)
μλ²κ° ν΄λΌμ΄μΈνΈμ μνλ₯Ό 보쑴νμ§ μμ΅λλ€.
- ν΄λΌμ΄μΈνΈκ° μνμ ꡬμ ν λ μ μ΄μ νμν μν μ 보μ κ²°μ μ 보λ₯Ό λ΄μμ μμ²μ νλ©΄ μλ²μμλ μνλ₯Ό 보쑴νμ§ μκ³ μλ΅λ§ ν©λλ€.
- μ€κ°μ μλ²κ° μ₯μ κ° λ°μν΄λ ν΄λΌμ΄μΈνΈκ° νμν μ 보λ€μ μ΄λ―Έ λ΄μ μμ΄μ λ€λ₯Έ μλ²μ μμ² ν μ μμ΅λλ€.
β 무μν μ€μΌμΌ μμ
λ‘κ·ΈμΈ μμ΄ κ²μλ§ ν κ²½μ° κ²μ μλ²μ νΈλν½μ΄ λ§μ΄ μ¬λΌκ°λ κ²μ μλ²μ ν΄λΌμ΄μΈνΈμ μνλ₯Ό μ μ§λμ§ μμμ μλ²λ₯Ό λ§μ΄ λ릴 μ μμ΅λλ€. ν΄λΌμ΄μΈνΈ, μλ² μν€ν μ²μμλ μμ²λ νμ₯μ±μ΄ κ°μ Έμ 무νν μλ² μ¦μμ ν μ μμ΅λλ€.
μν μ μ§μ 무μνμ νκ³
1. μν μ μ§μ νκ³
- λ‘κ·ΈμΈ ν΄μΌ λλ κ²½μ°λ λ‘κ·ΈμΈν μ¬μ©μκ° λ‘κ·ΈμΈνλ€λ μνλ₯Ό μλ²μ μ μ§ν΄μΌ ν©λλ€.
- λΈλΌμ°μ μμ μΏ ν€μ μλ²μ μΈμ μ κ°μ΄ μ‘°ν©ν΄μ μνλ₯Ό μ μ§νλ κΈ°λ₯μ μ¬μ©. μλ²μ μΈμ μ΄ λ μκ°κ±°λ μΈμ μλ²κ° μ£½μ΄λ²λ¦¬λ©΄ μ 체μ μΌλ‘ λ‘κ·ΈμΈμ΄ νλ €λ²λ¦¬κ² λ©λλ€.
- μνμ μ§λ μ΅μνμΌλ‘λ§ μ¬μ© ν©λλ€.
2. 무μνμ νκ³
- λ‘κ·ΈμΈν νμ μλ λ¨μν μκ° νμ΄μ§μΌ λλ μνλ₯Ό μ μ§ν νμκ° μμ΄μ μ€κ³νκΈ°κ° μ½μ΅λλ€.
- ν΄λΌμ΄μΈνΈκ° μ μ‘ν λ νμν μ 보λ₯Ό λ΄μμΌ λμ λ°μ΄ν°λμ΄ λ§μ΅λλ€.
3. λΉ μ°κ²°μ±(connectionless)
β μ°κ²°μ μ μ§νλ λͺ¨λΈ
μ¬λ¬ ν΄λΌμ΄μΈνΈμμ μλ²λ‘ μλ΅μ μμ²νλ©΄ μλ²λ μμ²μ΄ λ€μ΄μ¨ ν΄λΌμ΄μΈνΈ λ§λ€ μ°κ²°μ μ μ§ν΄μ μνλ₯Ό μ μ₯.
ν΄λΌμ΄μΈνΈκ° λ§μ μ§μλ‘ μ°κ²°μ μ μ§νλ μλ²μ μμμ΄ κ³μ μλͺ¨λλ λ¨μ μ΄ μμ΅λλ€.
β μ°κ²°μ μ μ§νμ§ μλ λͺ¨λΈ
ν΄λΌμ΄μΈνΈκ° μμ²ν λλ§λ€ μλ²λ μλ΅λ§ 보λ΄μ£Όκ³ μ°κ²°μ μ’ λ£νκΈ° λλ¬Έμ
μλ²κ° μ΅μνμ μμμΌλ‘ μ μ§ ν μ μμ΅λλ€.
β λΉμ°κ²°μ±
HTTPλ κΈ°λ³Έμ μΌλ‘ μ°κ²°μ μ μ§νμ§ μλ λͺ¨λΈ
μλνλ©΄ μ΄ λ¨μμμ μ΄νμ λΉ λ₯Έ μλλ‘ μλ΅μ ν λΏλλ¬, 1μκ° λμ μμ²λͺ μ΄ μλΉμ€λ₯Ό μ¬μ©ν΄λ μ€μ μλ²μμ λμμ μ²λ¦¬νλ μμ²μ λ³λ‘ μκΈ° λλ¬Έμ μλ² μ μ₯μμλ μμμ κ°μ©μ±μ΄ ν¨μ¬ λμ΅λλ€.
β λΉμ°κ²°μ±μ νκ³
TCP/IP μ°κ²°μ μλ‘ λ§Ίμ λ λ§λ€ 3 way handshake μκ° μΆκ°κ° λμ ν΄λΌμ΄μΈνΈ μ μ₯μμλ λ립λλ€.
μΉ λΈλΌμ°μ λ‘ μ¬μ΄νΈλ₯Ό μμ²νλ©΄ HTML, CSS, Javascript, μΆκ° μ΄λ―Έμ§ λ± μλ§μ μμμ΄ ν¨κ» λ€μ΄λ‘λν λ μ°κ²°νκ³ λκ³ λ μ°κ²°νκ³ λ λκ³ νλ©΄ λΉν¨μ¨μ μ λλ€.
β λΉμ°κ²°μ±μ 극볡
HTTPλ κΈ°λ³Έμ μΌλ‘ μ§μ μ°κ²°(Persistent Connection)λ‘ λ¬Έμ ν΄κ²°. HTTP/2, HTTP/3 μμλ λ λ§μ μ΅μ νκ° λμ΄ μμ΅λλ€.
4. HTTP λ©μμ§
β HTTP λ©μμ§ κ΅¬μ‘°
β HTTP μμ² λ©μμ§
GET /search?q=hello&hl=ko HTTP/1.1
method SP request-target SP HTTP-version CRLF
Host: www.google.com
field-name ":" OWS field-value OWS
method (λ©μλ)
HTTP methodμ μ’ λ₯κ° GET, POST, PUT, DELETE λ±μ΄ μκ³ μλ²κ° μνν΄μΌ ν λμμ μ§μ ν©λλ€.
request-target (μμ² λμ)
/absolute-pate[?query]
/μ λκ²½λ‘[?쿼리]
λ³΄ν΅ μ λκ²½λ‘λ‘ ' / 'λ‘ μμνκ³ λ€μ μΏΌλ¦¬κ° λΆμ΅λλ€.
HTTP-version (HTTP λ²μ )
β HTTP μλ΅ λ©μμ§
HTTP/1.1 200 OK
HTTP-version SP status-code SP reason-phrase CRLF
HTTP-version (HTTP λ²μ ) status-code (HTTP μν μ½λ)
ν΄λΌμ΄μΈνΈκ° λ³΄λΈ μμ²μ΄ μ±κ³΅νλμ§ μ€ν¨νλμ§ λνλ΄λ μν μ λλ€.
reason-phrase (μ΄μ 문ꡬ)
μ¬λμ΄ μ΄ν΄ν μ μλ 짧μ μν μ½λλ₯Ό μ½μ μ μλ κΈ
header
Content-Type: text/html;charset=UTF-8
Content-Length: 3423
field-name ":" OWS field-value OWS
HTTP ν€λμ μ©λλ HTTP μ μ‘μ νμν λ©μμ§ λ°λμ λ΄μ©, λ©μμ§ λ°λμ ν¬κΈ°, μμΆ, μΈμ¦, μμ² ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ ) μ 보, μλ² μ ν리μΌμ΄μ μ 보, μΊμ κ΄λ¦¬ μ λ λ± λͺ¨λ λΆκ° μ λ³΄κ° ν¬ν¨λμ΄ μμ΅λλ€.
body - μ€μ μ μ‘ν λ°μ΄ν°
<html>
<body> ... </body>
</html>
'π» CS > WEB' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[HTTP] - HTTP λ©μλ (0) | 2023.02.17 |
---|---|
[HTTP] - URIμ μΉ λΈλΌμ°μ μμ² νλ¦ (0) | 2022.11.26 |
[HTTP] - μΈν°λ· λ€νΈμν¬ (0) | 2022.11.25 |
[HTTP] - HTTP status code (0) | 2022.11.24 |