[λ€νΈμν¬] HTTP
π HTTPλ?
HyperText Transfer Protocolμ μ½μλ‘ HTMLλ¬Έμμ κ°μ 리μμ€λ₯Ό μλ²λ‘λΆν° κ°μ Έμ¬ μ μλλ‘ ν΄μ£Όλ νλ‘ν μ½μ λλ€.
ν΄λΌμ΄μΈνΈμ μλ²κ°μ μ μ‘λΏλ§ μλλΌ μλ²κ°μ μ μ‘μλ HTTPλ₯Ό μ¬μ©ν΄ λ°μ΄ν°λ₯Ό μ μ‘νλ©° κ±°μ λͺ¨λ ννμ λ°μ΄ν°λ₯Ό μ μ‘ν μ μμ΅λλ€.
βͺ κΈ°λ° νλ‘ν μ½
- TCP: HTTP.1.1, HTTP/2: HTTP/1.1, HTTP/2
- UDP: HTTP/3
- νμ¬ HTTP/1.1 μ£Όλ‘ μ¬μ©, HTTP/2, HTTP/3λ μ μ μ¦κ°
π HTTP νΉμ§
1. ν΄λΌμ΄μΈνΈ μλ² κ΅¬μ‘°
- Request Response ꡬ쑰
- ν΄λΌμ΄μΈνΈλ μλ²μ μμ²μ 보λ΄κ³ , μλ΅μ λκΈ°νλ€.
- μλ²κ° μμ²μ λν κ²°κ³Όλ₯Ό λ§λ€μ΄μ μλ΅νλ€.
2. 무μν νλ‘ν μ½(μ€ν μ΄νΈλ¦¬μ€ Stateless: μνλ₯Ό 보쑴νμ§ μμ), λΉμ°κ²°μ±
-
Stateless
- μλ²κ° ν΄λΌμ΄μΈνΈμ μνλ₯Ό 보쑴νμ§ μλλ€.
- ν΄λΌμ΄μΈνΈκ° νμν λ°μ΄ν°λ₯Ό κ³μ λκΈ΄λ€.
- νμν λ°μ΄ν°λ₯Ό ν΄λΌμ΄μΈνΈκ° 보λ΄κΈ° λλ¬Έμ κ°μκΈ° ν΄λΌμ΄μΈνΈμ μμ²μ΄ μ¦κ°ν΄λ μλ²λ₯Ό λκ±° ν¬μ ν μ μλ€.
- λ°λΌμ 무μνλ μλ΅ μλ²λ₯Ό μ½κ² λ°κΏ μ μμ΄ λ¬΄νν μλ² μ¦μ€μ΄ κ°λ₯νκ³ μ€μΌμΌ μμ(μν νμ₯)μ μ 리νλ€.
-
Stateless νκ³
- λ‘κ·ΈμΈμ΄ νμν νμ΄μ§μ κ²½μ° λ±μλ μλ²κ° μνλ₯Ό μ μ§ν΄μΌνλ€.
- μ΄λ¬ν κ²½μ°μλ μΌλ°μ μΌλ‘ λΈλΌμ°μ μΏ ν€μ μλ² μΈμ λ±μ μ¬μ©ν΄μ μνλ₯Ό μ μ§νλ€.
- μν μ μ§λ μ΅μνλ§ μ¬μ©νλ κ²μ΄ μ’λ€. λν λ°μ΄ν°λ₯Ό λ무 λ§μ΄ 보λΈλ€λ λ¨μ μ΄ μλ€.
- λΉμ°κ²°μ±
- μλ²κ° ν΄λΌμ΄μΈνΈμ μμ²μ μλ΅μ νκ³ μ°κ²°μ μ μ§νμ§ μμ.
- HTTPλ κΈ°λ³Έμ μΌλ‘ μ°κ²°μ μ μ§νμ§ μλ λͺ¨λΈ
- μΌλ°μ μΌλ‘ μ΄ λ¨μ μ΄νμ λΉ λ₯Έ μλλ‘ μλ΅
- 1μκ° λμ μμ²λͺ μ΄ μλΉμ€λ₯Ό μ΄μ©ν΄λ μ€μ μλ²μμ λμμ μ²λ¦¬νλ μμ²μ μμκ° μ΄νλ‘ μμ
- μλ² μμμ λ§€μ° ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μμ.
- λΉμ°κ²°μ±μ νκ³μ 극볡
- TCP/IP μ°κ²°μ μλ‘ λ§Ίμ΄μΌ ν¨ - 3 way handshake μκ° μΆκ°
- μΉ λΈλΌμ°μ λ‘ μ¬μ΄νΈλ₯Ό μμ²νλ©΄ HTML λΏλ§ μλλΌ μλ°μ€ν¬λ¦½νΈ, css, μΆκ° μ΄λ―Έμ§ λ±λ± μλ§μ μμμ΄ ν¨κ» λ€μ΄λ‘λ
- μ§κΈμ HTTP μ§μ μ°κ²°(Persistent Connections)λ‘ λ¬Έμ ν΄κ²°
- HTTP/2, HTTP/3μμ λ λ§μ μ΅μ ν
3. HTTP λ©μμ§λ₯Ό ν΅ν΄μ ν΅μ
π΄ μμ λΌμΈ
-
μμ² λ©μμ§
- HTTP λ©μλ (ex. GET: μ‘°ν): μλ²κ° μνν΄μΌ ν λμ μ§μ
- μμ² λμ (/search?q=hello&hl=ko): μ λκ²½λ‘=β/βλ‘ μμνλ κ²½λ‘
- HTTP Version
-
μλ΅ λ©μμ§
- HTTP λ²μ
- HTTP μν μ½λ: μμ² μ±κ³΅ λλ μ€ν¨(200: μ±κ³΅, 400: ν΄λΌμ΄μΈνΈ μμ² μ€λ₯. 500: μλ² λ΄λΆ μ€λ₯)
- μ΄μ 문ꡬ: μ¬λμ΄ μ΄ν΄ν μ μλ μ§§μ μν μ½λ μ€λͺ κΈ
π‘ HTTP ν€λ
- header-filed = field-name β:β OWS field-value OWS (OWS: λμ΄μ°κΈ° νμ©)
- field-name μ λμλ¬Έμ κ΅¬λΆ μμ
- μ©λ
- HTTP μ μ‘μ νμν λͺ¨λ λΆκ°μ 보
- μ) λ©μμ§ λ°λμ λ΄μ©, λ©μμ§ λ°λμ ν¬κΈ°, μμΆ, μΈμ¦..
- νμ€ν€λκ° λ§μ. . νμμ μμμ ν€λ μΆκ° κ°λ₯
π΅ HTTP λ©μμ§ λ°λ
- μ€μ μ μ‘ν λ°μ΄ν°
- HTMLλ¬Έμ, μ΄λ―Έμ§, μμ, JSON λ±λ± byteλ‘ ννν μ μλ λͺ¨λ λ°μ΄ν° μ μ‘ κ°λ₯
π¬ μ΅μ λκΈ