рдпрд╣ рдЕрдм 2018 рд╣реИ, HTTP / 2 рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди httpie
рдЕрднреА рднреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЪрд▓реЛ рдЗрд╕реЗ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВред
рдореБрдЭреЗ httpie / httpie-http2 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ:
httpie/httpie-http2
рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдЬрдм httpie
рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдмрд╕ рдХрднреА рдирд╣реАрдВ рдЬрд╛рди рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдпрд╣ рдкреНрд▓рдЧрдЗрди рднреА рдореМрдЬреВрдж рд╣реИредcurl
рдмреЙрдХреНрд╕ рд╕реЗ HTTP / 2 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИредрдореБрдЭреЗ HTTP / 2 рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдХрдИ рд▓рд╛рдн рд╣реИрдВред рдбрд╛рдЙрдирд╕рд╛рдЗрдб рдХреНрдпрд╛ рд╣реИрдВ?
рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл httpie/http2
рдкреНрд▓рдЧрдЗрди рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЕрднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдкреНрд▓рдЧрдЗрди рд╣рд╛рдЗрдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ hyperframe
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╣реБрдд рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреБрд░рд╛рдирд╛ hyperframe
рдореЗрд░реЗ рдЖрд░реНрдХ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ hyper
рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ httpie/http2
(рдареАрдХ рд╣реИ, рдореИрдВ _install_ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред
hyper
рдФрд░ рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛
рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "HTTP / 2 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ" рдХреЗ рд▓рд┐рдП rephrased рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╕рдордп httpie
рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ HTTP / 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред
@jakubroztocil рдХреЛрдИ рд╡рд┐рдЪрд╛рд░? http2 рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдЙрд╕ рд░реЗрдкреЛ рдХреЛ рдмрдирд╛рдП рдирд╣реАрдВ рд░рдЦ рд░рд╣рд╛ рд╣реИ
bump @jakubroztocil
@jakubroztocil рдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╣рд┐рдЯ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдПрдХ рд╕реАрдПрд▓рдЖрдИ рд╕реЗ http / 2 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП curl
рд╡рд╛рдкрд╕ рдЧрд┐рд░рдирд╛ рдкрдбрд╝рд╛: /
рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд░реНрд▓ рд╣рдореЗрд╢рд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдЗрд╕рдХреА рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред
рдореБрдЭреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд HTTP2 рд╕рдорд░реНрдерди рднреА рдкрд╕рдВрдж рдЖрдПрдЧрд╛ред
Http / httpie-http2 рдкреНрд▓рдЧрдЗрди рд╢реАрд░реНрд╖ рдкрд╛рдпрдерди-рд╣рд╛рдЗрдкрд░ / рд╣рд╛рдЗрдкрд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреАрдПрд╕рдПрдл / рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ HTTP2 рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдФрд░ рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдпрд╣ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдмрдирд╛рдП рд░рдЦрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред
рдореИрдВ рдПрдирдХреЛрдб / httpx рдкрд░ рдирдЬрд░ рд░рдЦ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд HTTP2 рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдмрди рд╕рдХрддрд╛ рд╣реИред
рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореИрдВ рдкреНрд▓рдЧрдЗрди рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред рдЕрдЧрд░ рд╕рдлрд▓ рд░рд╣рд╛, рддреЛ рдореИрдВ рдЗрд╕реЗ HTTPie рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░ рджреЗрдЦреВрдВрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рдкреНрд▓рдЧрдЗрди рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореБрджреНрджреЛрдВ рдХреЛ рднреА рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
(Ccред @Lukasa @tomchristie @florimondmanca)
рд╣рд╛рдБ, рд╣рд╛рдЗрдкрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдкреНрд░рдорд╛рдгрд┐рдд рд╣реИ: рдпрд╣ рд╣рд╛рдЗрдкрд░-рдПрдЪ 2 рдФрд░ рд╕рдВрдмрджреНрдз рдЕрдиреНрдп рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рдЧреГрд╣реАрдд рд╣реЛ рдЧрдпрд╛, рдФрд░ рдмрд╕ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ рдмрдирдирд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред Httpx рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреА рдЪреАрдЬрд╝ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд░реНрд▓ рд╣рдореЗрд╢рд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдЗрд╕рдХреА рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред