QUIC (рдХреНрд╡рд┐рдХ рдпреВрдбреАрдкреА рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рдВрд╕) рдпреВрдбреАрдкреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ рдЬреЛ рдЯреАрд╕реАрдкреА, рдЯреАрдПрд▓рдПрд╕ рдФрд░ HTTP/2 рдХреА рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдЕрдХреНрд╕рд░ рдПрдХ рдирдпрд╛ рдпрд╛ "рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ" рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЪрд░рдг рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЪреБрдХрд╛ рд╣реИ: рд╡рд┐рдХрд╛рд╕ 7 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдПрдХ рдорд╛рдирдХ рдмрдирдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рдирд╣реАрдВ рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╡реНрдпрд╛рдкрдХ рд╣реЛ рдЧрдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, QUIC рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рддреЗрдЬрд╝ рдХрд░рдиреЗ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рджреЗрд░реА рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Google рдФрд░ Facebook рдЬреИрд╕реЗ рджрд┐рдЧреНрдЧрдЬреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ IETF рдиреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдкрдиреЗ рдлреЛрд░реНрдХ рдХреЛ HTTP/3 рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ (рднрд▓реЗ рд╣реА HTTP/2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
рд╕рдВрдХрд▓реНрдкрдирд╛
QUIC рдХреЛ рдкреБрд░рд╛рдиреЗ рдЯреАрд╕реАрдкреА рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрдо-рдиреБрдХрд╕рд╛рди рд╡рд╛рд▓реЗ рд╡рд╛рдпрд░реНрдб рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЯреАрд╕реАрдкреА рдХреНрд░рдо рдореЗрдВ рдкреИрдХреЗрдЯ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдПрдХ рдкреИрдХреЗрдЯ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреВрд░реА рдХрддрд╛рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИ (
рдЪреВрдВрдХрд┐ QUIC рдПрдХ рдЯреАрд╕реАрдкреА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдФрд░ рдЯреАрдПрд▓рдПрд╕ 1.3 рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рд╕рднреА рдХрдиреЗрдХреНрд╢рди рд╣рдореЗрд╢рд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдРрд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ HTTPS рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, QUIC рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯреАрд╕реАрдкреА рд╕реНрдЯреИрдХ рдХрд╛ рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реЛрдЧрд╛ рдЕрдирдВрдд рдХрд╛рд▓.
HTTP/2 рдореЗрдВ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдХреНрд░рдо рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЗрдб-рдСрдлрд╝-рд▓рд╛рдЗрди рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣реАред QUIC рдХреЛ рдпреВрдбреАрдкреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдЕрд╡рд░реЛрдз рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдЦреЛ рдЬрд╛рдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдорд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдирдореЗрдВ "рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ" рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрддрд┐рд░реЗрдХ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, QUIC рдПрдХ рд╣реА рдХрдиреЗрдХреНрд╢рди рдХреЗ рднреАрддрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рдХрддрд╛рд░ рдХреЛ рдХрдИ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдХреЛрдИ рдкреИрдХреЗрдЯ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдПрдХ рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдБ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП):
рдЙрдкрдпреЛрдЧ
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, QUIC рдХреЛ Google рдХреЗ рднреАрддрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдХрдВрдкрдиреА рдХреЗ рднреАрддрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред 2013 рдореЗрдВ, рдЗрд╕реЗ рдорд╛рдирдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП IETF рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЬреЛ рдЕрднреА рднреА рдЬрд╛рд░реА рд╣реИ), рдФрд░ рдЕрдм рд╣рд░ рдХреЛрдИ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдХреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рдХреНрдпрд╛ рдХрдореА рд╣реИред IETF рдХрд╛рд░реНрдп рд╕рдореВрд╣ рд╡рд╛рд░реНрд╖рд┐рдХ рдмреИрдардХреЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдПрдХ рдирдП рдорд╛рдирдХ рдХреЛ рдордВрдЬреВрд░реА рджреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рддреА рд╣реИред QUIC рдХрд╛ рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореБрдЦреНрдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реА HTTP/3 рдорд╛рдирдХ рдкреНрд░рдорд╛рдгрд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдЕрднреА рддрдХ, HTTP/3 рдХреЛ рдореБрдЦреНрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рдФрд░ рд▓рдЧрднрдЧ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ:
рд▓реЗрдХрд┐рди QUIC рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд╣рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЙрдмрд░ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
QUIC рдХреА рд╢реБрд░реВрдЖрдд рдкрд░ рдЙрдмрд░ рдХреА рдЯрд┐рдкреНрдкрдгреА
QUIC рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдФрд░ рдЦрд░рд╛рдм рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдкреБрд░рд╛рдиреЗ рд╕реНрдЯреИрдХ (HTTP/2 рдУрд╡рд░ TLS/TCP) рдХреЛ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ред рд╣рдордиреЗ рдиреЗрдЯрд╡рд░реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рдХреНрд░реЛрдиреЗрдЯ рд╕реЗрдХреНрд░реЛрдорд┐рдпрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ , рдЬрд┐рд╕рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдореВрд▓, Google рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИ - gQUICред рдирд╡реАрдирддрдо IETF рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рднреА рд▓рдЧрд╛рддрд╛рд░ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИредрд╣рдордиреЗ QUIC рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░реЛрдиреЗрдЯ рдХреЛ рдЕрдкрдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдРрдкреНрд╕ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ред рдПрдХреАрдХрд░рдг рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдкреНрд░рд╡рд╛рд╕рди рд▓рд╛рдЧрдд рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреБрд░рд╛рдиреЗ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд╕реНрдЯреИрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп
OkHttp , рд╣рдордиреЗ OkHttp рдПрдкреАрдЖрдИ рдврд╛рдВрдЪреЗ рдХреЗ рддрд╣рдд рдХреНрд░реЛрдиреЗрдЯ рдХреЛ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХреАрдХрд░рдг рдХрд░рдХреЗ, рд╣рдордиреЗ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ (рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╕реЗ рдмрдЪрд╛ рд▓рд┐рдпрд╛рдкреБрд░рд╛рдирд╛ рд╡рд╛рдкрд╕ ) рдПрдкреАрдЖрдИ рд╕реНрддрд░ рдкрд░редрдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рдорд╛рди, рд╣рдордиреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ HTTP рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реЛрдХрддреЗ рд╣реБрдП, iOS рдкрд░ Uber рдРрдкреНрд╕ рдореЗрдВ рдХреНрд░реЛрдиреЗрдЯ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛
API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПNSURLрдкреНрд░реЛрдЯреЛрдХреЙрд▓ . рдЖрдИрдУрдПрд╕ рдлрд╛рдЙрдВрдбреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдпрд╣ рдЕрдореВрд░реНрдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпреВрдЖрд░рдПрд▓ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд▓рд╛рдЧрдд рдХреЗ рдмрд┐рдирд╛ рдХреНрд░реЛрдиреЗрдЯ рдХреЛ рдЕрдкрдиреЗ рдЖрдИрдУрдПрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реЗ рд▓рд┐рдпрд╛
рдмреИрдХрдПрдВрдб рдкрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ Google рдХреНрд▓рд╛рдЙрдб lb рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ QUIC рдХрдиреЗрдХреНрд╢рди рдкрдХрдбрд╝реЗ, рдЬреЛ
рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ Google рдХреНрд▓рд╛рдЙрдб Google-рд╡рд┐рдХрд╕рд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВ?
nginx
рдЕрднреА рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ CloudFlare
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/3 рдХреА рдЬрдЧрд╣ рд▓рд┐рдЦрд╛ рд╣реИ http2+quic/99
, рд▓реЗрдХрд┐рди рдпрд╣ рдореВрд▓рддрдГ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рд╣реИред
рдЕрдиреНрдп рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдБ
- QUIC рднреА рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ
LiteSpeed (рдЬреЛ рдмрдбрд╝реА рдзреВрдордзрд╛рдо рд╕реЗ HTTP/3 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлреЗрд╕рдмреБрдХ рд╕реЗ рдЬреБрдбрд╝рд╛) рдФрд░ рдкреНрд░рдЧрддрд┐рд╢реАрд▓рдЪрд╛рдпрджрд╛рди . рдЕрдкрд╛рдЪреЗ рдЕрднреА рддрдХ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИрдкреВрд░реЗ рдЬреЛрд░реЛрдВ рдкрд░ . - 21 рдЬрдирд╡рд░реА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛
WebRTC рдХреЗ рд▓рд┐рдП рдорд╕реМрджрд╛ рдорд╛рдирдХ - рдЕрднреА рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рд╣реА рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЦреБрд▓рд╛
msquic рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб , рдЬрд┐рд╕рдореЗрдВ IETF рдорд╛рдирдХ рдХреЗ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдЕрднреА рддрдХ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрдбрд╝реА рд╕рдлрд▓рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
QUIC рдореЗрдВ рд░реБрдЪрд┐ рдЕрд╕реНрдерд┐рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдмрдврд╝ рд░рд╣реА рд╣реИ, рдФрд░ рдЗрд╕реЗ рдорд╛рдирдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдирдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рдЧрднрдЧ рд╣рд░ рдорд╣реАрдиреЗ рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВ, рдФрд░ рд╣рд░ рд╕рд╛рд▓ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЖрд╢реНрд╡рд╕реНрдд рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ QUIC рд╣реА рднрд╡рд┐рд╖реНрдп рд╣реИред рдЯреАрд╕реАрдкреА рд╕реНрдЯреИрдХ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рджреЗрд░-рд╕рдмреЗрд░ рдкреВрд░рд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рддреЗрдЬрд╝ рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдм рдЖрдк рдЕрдкрдиреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП QUIC рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рднреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ - рд╡реЗ рд╕рднреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдХреИрдирд┐рдпрд╕ рдХреЗ рд╕рд╛рде рджреБрдЦрдж рдЖрдВрдХрдбрд╝реЗ рдЕрдзрд┐рдХ рд╣рд░реНрд╖рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
рд╕реНрд░реЛрдд: www.habr.com