рдЬрдм HTTP рдорд╛рдирдХ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЕрдВрддрд░рд┐рдХреНрд╖ рдпрд╛рддреНрд░реА рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИ

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

рдорд╛рдЗрдХреНрд░реЛрдиреЙрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдЖрдВрддрд░рд┐рдХ рдпреИрдВрдбреЗрдХреНрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЦреБрдж рдХреЛ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рддреЛ рд╣рдо рдХреНрдпрд╛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рдереЗ? рдореИрдВ рддреБрд░рдВрдд рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ: рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░, рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдмреИрдХрдПрдВрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕реЗ рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрдм рдЖрдкрдХреЛ HTTP рдкрд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ HTTP рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рдеред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕реЗ рдорд╛рдорд▓реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдВ рдЬрд┐рддрдирд╛ рдпрд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдорд╛рдирдХ рд╣реИрдВ:

  • рд╡реЗрдмрджрд╡ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред рдорд╛рдирдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, HTTP рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдЬреИрд╕реЗ LOCK, PROPPATCH, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
  • рдХреИрд▓рдбрд╡ рдХреИрд▓реЗрдВрдбрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдмрджрд╛рд╡ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИред рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╡рд╛рд▓рд╛ рдпрд╣ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрдкрдХреЗ рд╕реНрдорд╛рд░реНрдЯрдлрд╝реЛрди рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╣реИ: рдХреИрд▓реЗрдВрдбрд░, рдЕрдкреЙрдЗрдВрдЯрдореЗрдВрдЯ рдЖрджрд┐ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

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

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

рдХреНрдпреЛрдВ? рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕рдордп рдорд╛рдЗрдХреНрд░реЛрдлрд╝реЛрди рдореЗрдВ HTTP рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рд╡реЗ Enum рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рди рдХрд┐ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Netty рдореЗрдВ (рдореИрдВ рдЧрд▓рддреА рд╕реЗ Netty рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдмрд╛рдж рдореЗрдВ рдпрд╣ рдкреЙрдк рдЕрдк рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдПрдХ рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ)ред рдорд╛рдорд▓реЗ рдХреЛ рдмрджрддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рд╕рд░реНрд╡рд░ рдХреЙрд▓ рдорд┐рд▓рд╛рди рдХреЛ рдПрдирдо рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рдзрд┐ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо рд╕реЗ рдирд╣реАрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЛ рдЧреИрд░-рдорд╛рдирдХ HTTP рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдПрдирдо рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдкрдХреЛ рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рдЙрд╕реЗ рднрдВрдбрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдмрджреНрдз рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рджреВрд╕рд░реЗ, HTTP рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдорд╛рдирдХреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреА рд╕реВрдЪреА рдХрд╣реАрдВ рднреА рддрдп рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рддрд░реАрдХреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрдиреЙрдЯ рдХреЛ рдмрд╛рдзреНрдп рдХрд┐рдпрд╛ рдЬрд╛рдПред

рд╕рдорд╛рдзрд╛рди рдПрдХ: рдорд╛рдереЗ


рдЫрд╡рд┐

рдкрд╣рд▓рд╛ рдФрд░ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рдпрд╣ рдерд╛ рдХрд┐ рдорд╛рдЗрдХреЛрдиреЙрдЯ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рди рдЫреБрдЖ рдЬрд╛рдП рдФрд░ рди рд╣реА рдЗрд╕рдореЗрдВ рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЬрд╛рдПред рдХреНрдпреЛрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдорд╛рдЗрдХреНрд░реЛрдиреНрдпреВрдЯ рдХреЗ рд╕рд╛рдордиреЗ nronx рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдХрд┐рдпрд╛ рдерд╛, рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реБрдП:

http { upstream other_PROPPATCH { server ...; } upstream other_REPORT { server ...; } server { location /service { proxy_method POST; proxy_pass http://other_$request_method; } } } 

рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИ? рд╣рдо рдЧреИрд░-рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП nginx рдХреЛ рд╣рдорд╛рд░реА рдЬрд╝рд░реВрд░рдд рдХреА рдкреНрд░реЙрдХреНрд╕реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ nginx рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ: рдЕрд░реНрдерд╛рдд, рд╣рдо POST рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВрдЧреЗ, рдФрд░ Micronaut рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдмреБрд░рд╛ рд╣реИ? рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧреИрд░-рдмреЗрд░реЛрдЬрдЧрд╛рд░реА рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдпрд╛рддреНрд░реА рд╕реЗ рд╕рднреА рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдЧреИрд░-рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рдЕрд▓рдЧрд╛рд╡ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, REPORT рдЗрдореНрдкреЛрдЯреЗрдВрдЯ рд╣реИ, рдЬрдмрдХрд┐ PROPPATCH рдирд╣реАрдВ рд╣реИред рдирддреАрдЬрддрди, рдлреНрд░реЗрдорд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЬреЛ рдЗрди рд╣реИрдВрдбрд▓рд░ рдХреЗ рдХреЛрдб рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ рднреА рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рднреА рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡реЗрджрди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

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

рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛: рдХреНрдпреЛрдВ рди рд╕рд╣реА рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрдиреЙрдЯ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд╕рднреА рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдкрд╛рджрди рди рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗред рдпрд╣реА рд╣реИ, рдореИрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдЪрд╛рд╣рддрд╛ рдерд╛:

 @CustomMethod("PROPFIND") public String process( // Provide here HttpRequest or something else, as standard micronaut methods ) { } 

рдФрд░ рдореИрдВрдиреЗ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд╕рд╣рд░реНрд╖ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ?

рд╕рдорд╛рдзрд╛рди рджреЛ: рдЪрд▓реЛ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛!




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

рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо DefaultUriRouter рдХреЗ рд╕рд╛рде рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ рдХрд┐ рд╕реЗрдЯ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╕рдВрднрд╡ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдИ рдЧрдИ рдереАред рдЗрд╕реЗ рдирдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рдирд┐рдХрд▓рд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЛ реирекреж рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдерд╛ рдФрд░ резрезрем рдХреЛ рд╣рдЯрд╛рдирд╛ рдерд╛ред

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

рд╕рдорд╛рдзрд╛рди рддреАрди: рд╡рд┐рдХрд╕рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░реЗрдВ


рдЫрд╡рд┐

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рд╕рдВрд╕реНрдХрд░рдг 1.3 рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдкреБрд▓ рдЕрдиреБрд░реЛрдз рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдПрдХ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ рдкрд╛рдВрдЪ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдерд╛, рдФрд░ рдпрд╣ рдХреЛрдИ рджреБрд░реНрдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рдореИрдВ рдЖрдард╡реЗрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХреЛрдВ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рддрд╛ рд╣реИ, рдпрд╣ рдмрд╛рдд рдЕрдкреВрд░рдгреАрдп рд╣реИ, рдФрд░ рдореИрдВ рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдЖрдард╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рддрдХ рдореИрдВ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдпреЗ рд╕рдВрдкрд╛рджрди рдХреИрд╕реЗ рдХрд░реВрдВрдЧрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд╛рдлреА рд╣рдж рддрдХ, рдЖрдард╡реЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

рдореВрд▓ рд╕рдВрдкрд╛рджрди рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдереЗ рдХрд┐ HttpRequest рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдПрдХ рдЧреЗрдЯрдореЗрдереЛрдб рд╡рд┐рдзрд┐ рдереА, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╣ рд▓реМрдЯ рдЖрдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдирдоред рдЗрд╕рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐ getHttpMethodName рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдирдо рдорд╛рди рдХрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИред рдлрд┐рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдкрде рдорд┐рд▓рд╛рди рдореЗрдВ рдореВрд▓ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╡рд╣рд╛рдВ рдЗрд╕реЗ рдирдИ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдлрд┐рд░, рдиреЗрдЯреНрдЯреА рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, HTTP рд╡рд┐рдзрд┐ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕рдореЗрдВ рдПрдХ рдРрд╕реА рдЧрдбрд╝рдмрдбрд╝реА рдереА рдЬрд┐рд╕реЗ рдЪрд░реНрдЪрд╛ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдорд╛рдЗрдХреНрд░реЛрдиреЙрдЯ рдХреЗ рдШреЛрд╖рд┐рдд рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИред рд╡реЗ рдПрдиреНрдЯреА рд╡реИрд▓реНрдпреВ рдХреЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЗрдЯреА рдХреЗ рд▓рд┐рдП HttpMethod рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдорд╛рди рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрд╢реНрдб рдорд╛рди рдорд╛рдирдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЧреИрд░-рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рд╣рд░ рдмрд╛рд░ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рд╛рдИрд▓реЛрдб рд╣реИ рдФрд░ рдЖрдк рдПрдХ рд▓рд╛рдЦ рдмрд╛рд░ рдЧреИрд░-рдорд╛рдирдХ HTTP рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдХреА рдУрд░ рд░реБрдЦ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рд╕рд╛рде рдПрдХ рдорд┐рд▓рд┐рдпрди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВрдЧреЗред рдмреЗрд╢рдХ, рдЖрдзреБрдирд┐рдХ рдЬреАрд╕реА рдХреЛ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореИрдВ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ред рддрдм рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП ConcurrentHashMap.computeIfAbsent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ: рд╕рдорд╕реНрдпрд╛ рдЬрд╛рд╡рд╛ 8 рдХреЗ рджреЛрд╖ рдореЗрдВ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рднреА рдорд╛рдорд▓рд╛ рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдордиреЗ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛:

  • рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдиреЗрдЯреНрдЯреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдерд╛)ред
  • рдЧреИрд░-рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдирдП рдЙрджрд╛рд╣рд░рдг рдмрдирдиреЗ рджреЗрдВред рдЬреЛ рд▓реЛрдЧ рдЧреИрд░-рдорд╛рдирдХ рддрд░реАрдХреЗ рдЪреБрдирддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкрдЪрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рдо, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реЗрдирд╛рдирдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред

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


рдЫрд╡рд┐

рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

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

рдкреБрдирд╢реНрдЪ


рдЬрдм рдпрд╣ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рддреЛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдорд┐рд╕реЗрдирдЯреВрд░ рд╡рд┐рдЬрд╛рд░реНрдб рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЗрд╕реЗ рд╕рдВрд╕реНрдХрд░рдг 1.3 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

Source: https://habr.com/ru/post/hi466917/


All Articles