μ΄μ 2018 λ
, HTTP / 2κ° λ리 μ¬μ©λμ§λ§ httpie
μ (λ) μ¬μ ν κΈ°λ³Έμ μΌλ‘ μ§μνμ§ μμ΅λλ€. μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν©μλ€.
httpie / httpie-http2 μ λν΄ μκ³ μμ§λ§μ΄ μ κ·Ό λ°©μμλ λ¬Έμ κ° μμ΅λλ€.
httpie/httpie-http2
λ httpie
κ° μ€μΉ λ λ μμμμ λμ€μ§ μμ΅λλ€. λ§μ μ¬λλ€μ΄μ΄ νλ¬κ·ΈμΈμ΄ μ‘΄μ¬νλ€λ μ¬μ€μ κ²°μ½ μμ§ λͺ»ν κ²μ
λλ€.curl
μ‘°μ°¨λ κΈ°λ³Έμ μΌλ‘ HTTP / 2λ₯Ό μ§μν©λλ€.HTTP / 2λ₯Ό κΈ°λ³Έμ μΌλ‘ μ§μνλ©΄ λ§μ μ΄μ μ΄ μμ΅λλ€. λ¨μ μ 무μμ λκΉ?
λ°©κΈ httpie/http2
νλ¬κ·ΈμΈ μ€μΉλ₯Ό μλνλλ° μ§κΈμ μ¬μ©ν μμλ κ² κ°μ΅λλ€. νλ¬κ·ΈμΈμ νμ΄νΌ νλ‘μ νΈμ μμ‘΄νλ©°, μ΄λ λ€μ hyperframe
νλ‘μ νΈμ μμ£Ό μ€λλ λ²μ μ μμ‘΄ν©λλ€. μ΄ μ€λλ hyperframe
λ λ΄ Arch Linuxμμ μ¬μ©ν μ μμΌλ―λ‘ hyper
μ€μΉν μ μμΌλ―λ‘ httpie/http2
(κΈμ, _install_ ν μ μμ§λ§ λ°νμμ μΆ©λμ΄ λ°μ ν¨).
hyper
λ° ν΄λΉ μ’
μμ± μ
λ°μ΄νΈ μμ² μ νμ΄νΌ μμ±μμ μλ΅μμ΄ 1 λ
μ λΆν° μ΄λ € μμ΅λλ€. λ²λ €μ§ κ² κ°μ΅λλ€.
μλ§λμ΄ λ¬Έμ λ "HTTP / 2 μ§μ ꡬν"μΌλ‘ λ°κΏμΌ ν κ²μ
λλ€. νμ¬λ‘μλ httpie
λ₯Ό ν΅ν΄ μ΄λ€ λ°©μ μΌλ‘λ HTTP / 2λ₯Ό μ¬μ©νλ κ²μ λΆκ°λ₯ν©λλ€.
@jakubroztocil μ΄λ€ μκ°? http2 νλ¬κ·ΈμΈμλ λ§μ λ¬Έμ κ° μμΌλ©° μ무λ ν΄λΉ μ μ₯μλ₯Ό μ μ§νμ§ μλ κ² κ°μ΅λλ€.
λ²ν @jakubroztocil
@jakubroztocil μ΄ CLIμμ http / 2λ₯Ό ν
μ€νΈ ν νμκ° μμμ§λ§ curl
λ‘ λμ κ°μΌνκΈ° λλ¬Έμ λ€μμ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
κ°μ λ¬Έμ λ‘ μ»¬μ΄ νμ λ μ’μμ§ κ²μ΄λΌκ³ μκ°ν©λλ€.
λν λ΄μ₯ λ HTTP2 μ§μμ μν©λλ€.
httpie / httpie-http2 νλ¬κ·ΈμΈμ python-hyper / hyper μμ λΉλλ©λλ€. μ΄κ²μ΄ μ κ° μκ³ μλ psf / μμ²μ λν μ μΌν HTTP2 μ루μ μ΄λ©° μ¬νκ²λ λ μ΄μ μ κ·Ήμ μΌλ‘ μ μ§ κ΄λ¦¬λμ§ μλ κ² κ°μ΅λλ€.
encode / httpxλ₯Ό μ£Όμνκ³ μμ΅λλ€. κΈ°λ³Έ μ 곡 HTTP2 μ§μκ³Ό ν¨κ» μ 곡λλ©° μΈμ κ° μμ²μ λ체 ν μ μμ΅λλ€.
μ΄μ¨λ νλ¬κ·ΈμΈμ μμ νλ κ²λΆν° μμνκ² μ΅λλ€. μ±κ³΅νλ©΄ HTTPieμ ν¨κ» λ²λ€λ§νλ λ°©λ²μ μ΄ν΄ λ³΄κ² μ΅λλ€. μΌλ°μ μΈ νλ¬κ·ΈμΈ μ€μΉ λ¬Έμ λ ν΄κ²°λ©λλ€.
(μ°Έμ‘° @Lukasa @tomchristie @florimondmanca)
μ, hyperλ κΈ°λ³Έμ μΌλ‘ μ μ§λμ§ μμ΅λλ€. hyper-h2 λ° κ΄λ ¨ λ€λ₯Έ λΉλ© λΈλ‘μΌλ‘ λ체λμκ³ λ¨μν κ°μ₯ μ€μν κ²μ΄λλ κ²μ μ€λ¨νμ΅λλ€. Httpxλ νμ€ν μ£Όμν΄μΌ ν κ²μ λλ€.
κ°μ₯ μ μ©ν λκΈ
κ°μ λ¬Έμ λ‘ μ»¬μ΄ νμ λ μ’μμ§ κ²μ΄λΌκ³ μκ°ν©λλ€.