-
λ€μ λ¬Έμ₯μμ λΉμΉΈμ λ€μ΄κ° λ¨μ΄λ‘ μλ§μ κ²μ?
HTTP 2.0μ μ£Όλ‘ HTTP/1.1μ _________ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λμλ€.
a. ꡬνμ λ¨μμ±
b. μ±λ₯
c. μ κ·Όμ±
-
HTTP/1.x μμ HTTP/2κ° λλ©΄μ λ°λ κ²μ λͺ¨λ κ³ λ₯΄μμ€
a. HTTP μλ―Έ 체κ³(μ: λμ¬, λ©μλ λ° ν€λ)
b. μλ―Έ 체κ³κ° μΈμ½λ©λλ λ°©μ
π λ΅μ§
-
λ€μ λ¬Έμ₯μμ λΉμΉΈμ λ€μ΄κ° λ¨μ΄λ‘ μλ§μ κ²μ?
HTTP 2.0μ μ£Όλ‘ HTTP/1.1μ
b.μ±λ₯λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λμλ€. -
HTTP/1.x μμ HTTP/2κ° λλ©΄μ λ°λ κ²μ λͺ¨λ κ³ λ₯΄μμ€.
a. HTTP μλ―Έ 체κ³(μ: λμ¬, λ©μλ λ° ν€λ)
b. μλ―Έ 체κ³κ° μΈμ½λ©λλ λ°©μ
μ λ΅ : b
HTTP/2μ λͺ¨λ μ±λ₯ ν₯μ μ€ ν΅μ¬μ μ λ°μ΄λ리 νλ μ΄λ° κ³μΈ΅μΈλ° μ΄ κ³μΈ΅μ HTTP λ©μμ§κ° μΊ‘μνλμ΄ ν΄λΌμ΄μΈνΈμ μλ² μ¬μ΄μ μ μ‘λλ λ°©μμ κ·μ ν©λλ€. μ΄λ° λ³νλ₯Ό ν΅ν΄ HTTP μλ―Έ 체κ³(μ: λμ¬, λ©μλ λ° ν€λ)λ μν₯μ λ°μ§ μμ§λ§ μ μ‘ μ€μ μ΄ μλ―Έ 체κ³κ° μΈμ½λ©λλ λ°©μμ λ¬λΌμ‘μ΅λλ€. μ€λ°κΏμΌλ‘ ꡬλΆλλ μΌλ° ν μ€νΈ HTTP/1.x νλ‘ν μ½κ³Ό λ¬λ¦¬, λͺ¨λ HTTP/2 ν΅μ μ λ μμ λ©μμ§μ νλ μμΌλ‘ λΆν λλ©°, κ°κ°μ λ°μ΄λ리 νμμΌλ‘ μΈμ½λ©λ©λλ€.
<μΆμ²>
(https://developers.google.com/web/fundamentals/performance/http2?hl=ko#%EB%B0%94%EC%9D%B4%EB%84%88%EB%A6%AC_%ED%94%84%EB%A0%88%EC%9D%B4%EB%B0%8D_%EA%B3%84%EC%B8%B5)
-
HTTP/2.0μμ λͺ¨λ λ©μμ§λ _______ μ λ΄κ²¨ μ μ‘λλ€.
-
μ€νΈλ¦Όκ³Ό λ©ν° νλ μ±μ λν΄ μ³μ κ²μ λͺ¨λ κ³ λ₯΄μμ€.
a. νλμ 컀λ₯μ μμ μ¬λ¬ κ°μ μ€νΈλ¦Όμ λμμ μ΄ μ μκ³ μ΄λ₯Ό ν΅ν΄ μλ΅ μμμ μκ΄μμ΄ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ€.
b. μ€νΈλ¦Όμ μ°μ μμλ₯Ό κ°μ§ μ μλ€.
c. μ€νΈλ¦Όμ λ§λ€ λ μλ²μ ν΄λΌμ΄μΈνΈλ λΉ λ₯΄κ² TCPν¨ν·μ μ£Όκ³ λ°μμΌλ‘μ¨ μ€νΈλ¦Όμ λ§λ€ μ μλ€.
-
λΉμΉΈμ λ€μ΄κ° λ΄μ©μ?
HTTP/2μμλ _______ μμΆ νμμ μ¬μ©νμ¬ μμ² λ° μλ΅ ν€λ λ©ν λ°μ΄ν°λ₯Ό μμΆν©λλ€.
-
Stream 3μ HEADERS frameμ λ€μ΄κ° λ΄μ© μ μΌμΈμ.
-
μλ²νΈμλ₯Ό ν΅ν΄ μλ²λ μλ μμ²μ μλ΅ν λΏλ§ μλλΌ ν΄λΌμ΄μΈνΈκ° λͺ μμ μΌλ‘ μμ²νμ§ μμλ μλ²κ° μΆκ°μ μΈ λ¦¬μμ€λ₯Ό ν΄λΌμ΄μΈνΈμ λ³΄λΌ μ μλ€. ( O / X )
-
λͺ¨λ μλ² νΈμ μ€νΈλ¦Όμ ____________ νλ μμ ν΅ν΄ μμλλ©° μ΄ νλ μμ νΈμλ 리μμ€λ₯Ό μμ²νλ μλ΅ λ°μ΄ν°λ³΄λ€ λ¨Όμ μ λ¬λμ΄μΌ ν©λλ€.
-
6 λ²μμ ν΄λΉ νλ μμ΄ λ¨Όμ μ λ¬λμ΄μΌ λλ μ΄μ λ?
π λ΅μ§
-
HTTP/2.0μμ λͺ¨λ λ©μμ§λ
νλ μμ λ΄κ²¨ μ μ‘λλ€. -
μ€νΈλ¦Όκ³Ό λ©ν° νλ μ±μ λν΄ μ³μ κ²μ λͺ¨λ κ³ λ₯΄μμ€.
a. νλμ 컀λ₯μ μμ μ¬λ¬ κ°μ μ€νΈλ¦Όμ λμμ μ΄ μ μκ³ μ΄λ₯Ό ν΅ν΄ μλ΅ μμμ μκ΄μμ΄ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ€.
b. μ€νΈλ¦Όμ μ°μ μμλ₯Ό κ°μ§ μ μλ€.
c. μ€νΈλ¦Όμ λ§λ€ λ μλ²μ ν΄λΌμ΄μΈνΈλ λΉ λ₯΄κ² TCPν¨ν·μ μ£Όκ³ λ°μμΌλ‘μ¨ μ€νΈλ¦Όμ λ§λ€ μ μλ€.
μ λ΅ : a, b
c μμ μλ²μ ν΄λΌμ΄μΈνΈλ μ€νΈλ¦Όμ μλλ°©κ³Ό νμ μμ΄ μΌλ°©μ μΌλ‘ λ§λ λ€. μ΄λ μ€νΈλ¦Όμ λ§λ€ λ νμμ μν TCPν¨ν·μ μ£Όκ³ λ°λ μκ°μ λλΉνμ§ μμλ λ¨μ μλ―Ένλ€. (p. 291) -
λΉμΉΈμ λ€μ΄κ° λ΄μ©μ?
μ λ΅ : HTTP/2μμλ
HPACKμμΆ νμμ μ¬μ©νμ¬ μμ² λ° μλ΅ ν€λ λ©ν λ°μ΄ν°λ₯Ό μμΆν©λλ€. -
Stream 3μ HEADERS frameμ λ€μ΄κ° λ΄μ© μ μΌμΈμ.
-
μλ²νΈμλ₯Ό ν΅ν΄ μλ²λ μλ μμ²μ μλ΅ν λΏλ§ μλλΌ ν΄λΌμ΄μΈνΈκ° λͺ μμ μΌλ‘ μμ²νμ§ μμλ μλ²κ° μΆκ°μ μΈ λ¦¬μμ€λ₯Ό ν΄λΌμ΄μΈνΈμ λ³΄λΌ μ μλ€. ( O / X )
μ λ΅ :
O
μ΄λ ν΄λΌμ΄μΈνΈκ° HTML λ¬Έμλ₯Ό νμ±ν΄μ νμν 리μμ€λ₯Ό λ€μ μμ²νμ¬ λ°μνκ² λλ νΈλν½κ³Ό νμ μ§μ°μ μ€μ¬μ€λ€. -
λͺ¨λ μλ² νΈμ μ€νΈλ¦Όμ
PUSH_PROMISEνλ μμ ν΅ν΄ μμλλ©° μ΄ νλ μμ νΈμλ 리μμ€λ₯Ό μμ²νλ μλ΅ λ°μ΄ν°λ³΄λ€ λ¨Όμ μ λ¬λμ΄μΌ ν©λλ€. -
6 λ²μμ ν΄λΉ νλ μμ΄ λ¨Όμ μ λ¬λμ΄μΌ λλ μ΄μ λ?
μ λ΅ : μλ²κ° νΈμνλ €κ³ νλ μμμ ν΄λΌμ΄μΈνΈκ° λ³λλ‘ λ μμ²νκ² λλ μν©μ νΌνκΈ° μν¨μ΄λ€. (= 리μμ€μ λν΄ μ€λ³΅ μμ²μ΄ μμ±λλ κ²μ λ§κΈ° μν΄μ)
- HTTP/2.0 λ©μΈμ§λ₯Ό μ€κ°μ νλ½μκ° HTTP/1.1 λ©μΈμ§λ‘ λ³νν λ λ©μΈμ§κ° λ³μ§ λ μ μλ€ (O/X)
- Ι+π₯) μΊ‘μν 곡격μ΄λ 무μμΈκ°?
- HTTP/2.0μ HTTP/1.1κ³Ό λ¬λ¦¬ μ€νΈλ¦Όκ³Ό λ©ν°νλ μ±μ ν΅ν΄ ν¨μ¨μ μΌλ‘ ν΅μ ν μ μλ€. μ΄λ λ°μν μ μλ 보μ μ΄μλ 무μμΈκ°?
π λ΅μ§
- HTTP/2.0 λ©μΈμ§λ₯Ό μ€κ°μ νλ½μκ° HTTP/1.1 λ©μΈμ§λ‘ λ³νν λ λ©μΈμ§κ° λ³μ§ λ μ μλ€ (O/X)
- μ λ΅ : O (CR,LF,Null λ¬Έμ λ±μ μλͺ» μ²λ¦¬νμ¬ ν€λμ λ©μΈμ§λ₯Ό ꡬλΆνμ§ λͺ»νκ² λ μ μλ€. μ΄λ° μ·¨μ½μ μ κ°μ§κ³ 곡격νλ κ²μ "μ€κ°μ μΊ‘μν 곡격(Intermediary Encapulation Attacks)"μ΄λΌκ³ νλ€.
- νμ¬κΉμ§λ λ°μνλ 보μ μ΄μμ΄λ€. (2019λ 11μμ NVD-CVEμμ λ°ν https://nvd.nist.gov/vuln/detail/CVE-2019-19330)
- Ι+π₯) μΊ‘μν 곡격μ΄λ 무μμΈκ°?
- μ λ΅ : μΊ‘μνλ λ°μ΄ν°λ₯Ό λ€λ₯Έ κ³³μμ λμ½λ©ν λ λ°μ΄ν°λ₯Ό μλͺ» λΆλ¦¬νκ±°λ ꡬλ³νμ¬ μλͺ»λ μ½λκ° μννΈμ¨μ΄μ λ€μ΄μ λ¬Έμ λ₯Ό μΌμΌν€λ κ²½μ°μ΄λ€. μ΄λ μ 체 μμ€ν μ μμ¬ νλ‘κ·Έλ¨ λμλ₯Ό μν€κ±°λ λλ©μΈ κ° κ³΅κ²©μ΄ μκΈΈ μ μκ³ μμΈμ€ κΆνμ μ»μ μ μλ€.
μλ₯Ό λ€μ΄λ³΄μ.
1. ν΄μ»€κ° HTTP/1.1μ μ¬μ©νλ μλ²μ μ€κ°μ λ©μ²ν νλ½μλ₯Ό μ°Ύλλ€.
2. HTTP/2.0 λ©μΈμ§λ₯Ό λ³΄λ΄ 1.1λ‘ ν΄μνκ² λ§λ λ€.
3. μ΄λ 2.0μΌλ‘ 보λ΄λ λ©μΈμ§μ CR,LF, Null λ¬Έμλ±μ λ£μ΄ μ΄λ»κ² HTTP/1.1 μ½λκ° ν΄μλλμ§ νμΈνκ³ μ»΄νμΌ λ³΄μ λ¬Έμ λ₯Ό μ°Ύλλ€.
4. λ¬Έμ μ μ λ°κ²¬νκ³ μλμ κ°μ μ½λλ₯Ό HTTP/2.0 λ©μΈμ§λ₯Ό λ³΄λ΄ μλ²κ° μ΄λ₯Ό μ€ννκ² λ§λ€κ³ κ·Έ μλ΅μ λ°κ³ 곡격νλ€.
char* path = getenv("PATH");
...
sprintf(stderr, "cannot find exe on path %s\n", path);
getenv() ν¨μλ νμ€μ€λ₯ μ€νΈλ¦Όμ μ΄μ©ν΄μ νκ²½λ³μλ₯Ό νμΈνλ μ½λμ΄λ€.
μ΄λ₯Ό HTTP/2.0 λ©μΈμ§λ‘ μΊ‘μννμ¬ λ³΄λ΄κ³ μμ§ν νλ½μλ μ΄λ₯Ό μ½κ² ν΄μνμ¬
HTTP/1.1 λ©μΈμ§λ‘ λ³ννλλ° μλ²λ μ΄λ₯Ό λͺ¨λ₯΄κ³ κ·Έλλ‘ μλμ μ½λλ₯Ό μ»΄νμΌνμ¬
곡격μμκ² κ·Έλλ‘ λ
ΈμΆμν¬ μ μλ€.
reference : https://www.veracode.com/security/encapsulation
- HTTP/2.0μ HTTP/1.1κ³Ό λ¬λ¦¬ μ€νΈλ¦Όκ³Ό λ©ν°νλ μ±μ ν΅ν΄ ν¨μ¨μ μΌλ‘ ν΅μ ν μ μλ€. μ΄λ λ°μν μ μλ 보μ μ΄μλ 무μμΈκ°?
- μ λ΅ : κΈ΄ 컀λ₯μ μ μ μ§νκ³ μμΌλ©΄ κ°μΈμ 보 μ μΆμ μ μ©λ μ μλ€.
-
http/1.1 vs http/2.0 μλλΉκ΅, κ°λ°μ λꡬλ₯Ό ν΅ν΄ μ€μ λ©μΈμ§λ νμΈ κ°λ₯
-
HTTP/1.1 vs HTTP/2
- Binary Framing Layer
- μμ² λ° μλ΅ λ€μ€ν
- ν€λ μμΆ
