рдпреВрдбреАрдкреА рдкрд░ HTTP - QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдпреВрдбреАрдкреА рдкрд░ HTTP - QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

QUIC (рдХреНрд╡рд┐рдХ рдпреВрдбреАрдкреА рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рдВрд╕) рдпреВрдбреАрдкреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ рдЬреЛ рдЯреАрд╕реАрдкреА, рдЯреАрдПрд▓рдПрд╕ рдФрд░ HTTP/2 рдХреА рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдЕрдХреНрд╕рд░ рдПрдХ рдирдпрд╛ рдпрд╛ "рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ" рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЪрд░рдг рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЪреБрдХрд╛ рд╣реИ: рд╡рд┐рдХрд╛рд╕ 7 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдПрдХ рдорд╛рдирдХ рдмрдирдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рдирд╣реАрдВ рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╡реНрдпрд╛рдкрдХ рд╣реЛ рдЧрдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, QUIC рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рддреЗрдЬрд╝ рдХрд░рдиреЗ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рджреЗрд░реА рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Google рдФрд░ Facebook рдЬреИрд╕реЗ рджрд┐рдЧреНрдЧрдЬреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ IETF рдиреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдкрдиреЗ рдлреЛрд░реНрдХ рдХреЛ HTTP/3 рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ (рднрд▓реЗ рд╣реА HTTP/2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЗрд╡рд▓ 44.8% рд╕рд╛рдЗрдЯреЗрдВ)ред

рд╕рдВрдХрд▓реНрдкрдирд╛

QUIC рдХреЛ рдкреБрд░рд╛рдиреЗ рдЯреАрд╕реАрдкреА рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрдо-рдиреБрдХрд╕рд╛рди рд╡рд╛рд▓реЗ рд╡рд╛рдпрд░реНрдб рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЯреАрд╕реАрдкреА рдХреНрд░рдо рдореЗрдВ рдкреИрдХреЗрдЯ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдПрдХ рдкреИрдХреЗрдЯ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреВрд░реА рдХрддрд╛рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИ (рд╣реЗрдб-рдСрдлрд╝-рд▓рд╛рдЗрди рдЕрд╡рд░реЛрдзрди), рдЬреЛ рдХрдиреЗрдХреНрд╢рди рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдиреБрдХрд╕рд╛рди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реЗрд▓реБрд▓рд░ рдиреЗрдЯрд╡рд░реНрдХ рдмрдбрд╝реЗ рдмрдлрд╝рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рдЕрддрд┐рд░реЗрдХ рдФрд░ рдЭреВрдареА рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИ (рдмрдлрд░рдмреНрд▓реЛрдЯ). рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИ: SYN/ACK рдФрд░ TLS рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЗ рдмрдЬрд╛рдп рддреАрди рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ QUIC рдХрд░рддрд╛ рд╣реИред

рдпреВрдбреАрдкреА рдкрд░ HTTP - QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЪреВрдВрдХрд┐ QUIC рдПрдХ рдЯреАрд╕реАрдкреА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдФрд░ рдЯреАрдПрд▓рдПрд╕ 1.3 рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рд╕рднреА рдХрдиреЗрдХреНрд╢рди рд╣рдореЗрд╢рд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдРрд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ HTTPS рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, QUIC рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯреАрд╕реАрдкреА рд╕реНрдЯреИрдХ рдХрд╛ рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реЛрдЧрд╛ рдЕрдирдВрдд рдХрд╛рд▓.

HTTP/2 рдореЗрдВ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдХреНрд░рдо рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЗрдб-рдСрдлрд╝-рд▓рд╛рдЗрди рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣реАред QUIC рдХреЛ рдпреВрдбреАрдкреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдЕрд╡рд░реЛрдз рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдЦреЛ рдЬрд╛рдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдорд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдирдореЗрдВ "рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ" рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрддрд┐рд░реЗрдХ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, QUIC рдПрдХ рд╣реА рдХрдиреЗрдХреНрд╢рди рдХреЗ рднреАрддрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рдХрддрд╛рд░ рдХреЛ рдХрдИ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдХреЛрдИ рдкреИрдХреЗрдЯ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдПрдХ рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдБ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП):

рдпреВрдбреАрдкреА рдкрд░ HTTP - QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЙрдкрдпреЛрдЧ

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, QUIC рдХреЛ Google рдХреЗ рднреАрддрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдХрдВрдкрдиреА рдХреЗ рднреАрддрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред 2013 рдореЗрдВ, рдЗрд╕реЗ рдорд╛рдирдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП IETF рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЬреЛ рдЕрднреА рднреА рдЬрд╛рд░реА рд╣реИ), рдФрд░ рдЕрдм рд╣рд░ рдХреЛрдИ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдХреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рдХреНрдпрд╛ рдХрдореА рд╣реИред IETF рдХрд╛рд░реНрдп рд╕рдореВрд╣ рд╡рд╛рд░реНрд╖рд┐рдХ рдмреИрдардХреЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдПрдХ рдирдП рдорд╛рдирдХ рдХреЛ рдордВрдЬреВрд░реА рджреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рддреА рд╣реИред QUIC рдХрд╛ рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореБрдЦреНрдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реА HTTP/3 рдорд╛рдирдХ рдкреНрд░рдорд╛рдгрд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдЕрднреА рддрдХ, HTTP/3 рдХреЛ рдореБрдЦреНрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рдФрд░ рд▓рдЧрднрдЧ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ:

рдпреВрдбреАрдкреА рдкрд░ HTTP - QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рд▓реЗрдХрд┐рди QUIC рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд╣рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЙрдмрд░ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

QUIC рдХреА рд╢реБрд░реВрдЖрдд рдкрд░ рдЙрдмрд░ рдХреА рдЯрд┐рдкреНрдкрдгреА

QUIC рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдФрд░ рдЦрд░рд╛рдм рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдкреБрд░рд╛рдиреЗ рд╕реНрдЯреИрдХ (HTTP/2 рдУрд╡рд░ TLS/TCP) рдХреЛ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ред рд╣рдордиреЗ рдиреЗрдЯрд╡рд░реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдХреНрд░реЛрдиреЗрдЯ рд╕реЗ рдХреНрд░реЛрдорд┐рдпрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдореВрд▓, Google рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИ - gQUICред рдирд╡реАрдирддрдо IETF рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рднреА рд▓рдЧрд╛рддрд╛рд░ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рд╣рдордиреЗ QUIC рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░реЛрдиреЗрдЯ рдХреЛ рдЕрдкрдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдРрдкреНрд╕ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ред рдПрдХреАрдХрд░рдг рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдкреНрд░рд╡рд╛рд╕рди рд▓рд╛рдЧрдд рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреБрд░рд╛рдиреЗ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд╕реНрдЯреИрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп OkHttp, рд╣рдордиреЗ OkHttp рдПрдкреАрдЖрдИ рдврд╛рдВрдЪреЗ рдХреЗ рддрд╣рдд рдХреНрд░реЛрдиреЗрдЯ рдХреЛ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХреАрдХрд░рдг рдХрд░рдХреЗ, рд╣рдордиреЗ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ (рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╕реЗ рдмрдЪрд╛ рд▓рд┐рдпрд╛ рдкреБрд░рд╛рдирд╛ рд╡рд╛рдкрд╕) рдПрдкреАрдЖрдИ рд╕реНрддрд░ рдкрд░ред

рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рдорд╛рди, рд╣рдордиреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ HTTP рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реЛрдХрддреЗ рд╣реБрдП, iOS рдкрд░ Uber рдРрдкреНрд╕ рдореЗрдВ рдХреНрд░реЛрдиреЗрдЯ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ APIрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП NSURLрдкреНрд░реЛрдЯреЛрдХреЙрд▓. рдЖрдИрдУрдПрд╕ рдлрд╛рдЙрдВрдбреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдпрд╣ рдЕрдореВрд░реНрдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпреВрдЖрд░рдПрд▓ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд▓рд╛рдЧрдд рдХреЗ рдмрд┐рдирд╛ рдХреНрд░реЛрдиреЗрдЯ рдХреЛ рдЕрдкрдиреЗ рдЖрдИрдУрдПрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реЗ рд▓рд┐рдпрд╛ рдпрд╣ рдЕрдиреБрд╡рд╛рдж рдЙрдмреЗрд░ рд▓реЗрдЦ

рдмреИрдХрдПрдВрдб рдкрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ Google рдХреНрд▓рд╛рдЙрдб lb рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ QUIC рдХрдиреЗрдХреНрд╢рди рдкрдХрдбрд╝реЗ, рдЬреЛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ 2018 рдХреЗ рдордзреНрдп рд╕реЗред

рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ Google рдХреНрд▓рд╛рдЙрдб Google-рд╡рд┐рдХрд╕рд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВ?

nginx

рдЕрднреА рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ CloudFlare рдореИрдВрдиреЗ рдкрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА nginx (рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ HTTP/3 рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ) рдЕрдкрдиреЗ рдХреНрд╡рд┐рдЪ рдЯреВрд▓ рдХреЗ рд╕рд╛рдеред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХрд▓ .рдкреИрдЪ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬреЛ рдПрдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ:

curl -O https://nginx.org/download/nginx-1.16.1.tar.gz
tar xvzf nginx-1.16.1.tar.gz
git clone --recursive https://github.com/cloudflare/quiche
cd nginx-1.16.1
patch -p01 < ../quiche/extras/nginx/nginx-1.16.patch

рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЖрдк рдпрд╣рд╛рдВ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

./configure                          	
   	--prefix=$PWD                       	
   	--with-http_ssl_module              	
   	--with-http_v2_module               	
   	--with-http_v3_module               	
   	--with-openssl=../quiche/deps/boringssl 
   	--with-quiche=../quiche
 make

рдЬреЛ рдХреБрдЫ рдмрдЪрд╛ рд╣реИ рд╡рд╣ HTTP/3 рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИ

events {
    worker_connections  1024;
}

http {
    server {
        # Enable QUIC and HTTP/3.
        listen 443 quic reuseport;

        # Enable HTTP/2 (optional).
        listen 443 ssl http2;

        ssl_certificate      cert.crt;
        ssl_certificate_key  cert.key;

        # Enable all TLS versions (TLSv1.3 is required for QUIC).
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

        # Request buffering in not currently supported for HTTP/3.
        proxy_request_buffering off;

        # Add Alt-Svc header to negotiate HTTP/3.
        add_header alt-svc 'h3-27=":443"; ma=86400';
    }
}

рдирд┐рдпрдорд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ HTTP/3 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЕрднреА рддрдХ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрд░реЛрдо рдХреИрдирд░реА рдФрд░ рдЗрд╕реЗ рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдпреЗрдВ --enable-quic, рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛рдПрдВ рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, quic.rocks рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓реНрд╕ рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдХрд╛рд░ рджреЗрдЦреЗрдВ:
рдпреВрдбреАрдкреА рдкрд░ HTTP - QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
HTTP/3 рдХреА рдЬрдЧрд╣ рд▓рд┐рдЦрд╛ рд╣реИ http2+quic/99, рд▓реЗрдХрд┐рди рдпрд╣ рдореВрд▓рддрдГ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рд╣реИред

рдЕрдиреНрдп рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдБ

  • QUIC рднреА рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ LiteSpeed (рдЬреЛ рдмрдбрд╝реА рдзреВрдордзрд╛рдо рд╕реЗ HTTP/3 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлреЗрд╕рдмреБрдХ рд╕реЗ рдЬреБрдбрд╝рд╛) рдФрд░ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рдЪрд╛рдпрджрд╛рди. рдЕрдкрд╛рдЪреЗ рдЕрднреА рддрдХ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдкреВрд░реЗ рдЬреЛрд░реЛрдВ рдкрд░.
  • 21 рдЬрдирд╡рд░реА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ WebRTC рдХреЗ рд▓рд┐рдП рдорд╕реМрджрд╛ рдорд╛рдирдХ
  • рдЕрднреА рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рд╣реА рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЦреБрд▓рд╛ msquic рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб, рдЬрд┐рд╕рдореЗрдВ IETF рдорд╛рдирдХ рдХреЗ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдЕрднреА рддрдХ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрдбрд╝реА рд╕рдлрд▓рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖

рдпреВрдбреАрдкреА рдкрд░ HTTP - QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

QUIC рдореЗрдВ рд░реБрдЪрд┐ рдЕрд╕реНрдерд┐рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдмрдврд╝ рд░рд╣реА рд╣реИ, рдФрд░ рдЗрд╕реЗ рдорд╛рдирдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдирдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рдЧрднрдЧ рд╣рд░ рдорд╣реАрдиреЗ рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВ, рдФрд░ рд╣рд░ рд╕рд╛рд▓ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЖрд╢реНрд╡рд╕реНрдд рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ QUIC рд╣реА рднрд╡рд┐рд╖реНрдп рд╣реИред рдЯреАрд╕реАрдкреА рд╕реНрдЯреИрдХ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рджреЗрд░-рд╕рдмреЗрд░ рдкреВрд░рд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рддреЗрдЬрд╝ рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред

рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдм рдЖрдк рдЕрдкрдиреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП QUIC рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рднреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ - рд╡реЗ рд╕рднреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдХреИрдирд┐рдпрд╕ рдХреЗ рд╕рд╛рде рджреБрдЦрдж рдЖрдВрдХрдбрд╝реЗ рдЕрдзрд┐рдХ рд╣рд░реНрд╖рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдпреВрдбреАрдкреА рдкрд░ HTTP - QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ