рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реЗрдм рдХреИрд░рд┐рдпрд░ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддрд░рдл рдХрд╛рдо рдХрд┐рдпрд╛ред рдЕрдиреБрдХреВрд▓реА рд▓реЗрдЖрдЙрдЯ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛, рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реЗ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдмрдирд╛рдирд╛, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреИрд╢рдмреЛрд░реНрдб рдмрдирд╛рдирд╛, рдЖрджрд┐ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕реАрдзреЗ рд░реВрдЯрд┐рдВрдЧ рдпрд╛ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рд╕реАрдзреЗ рдирд┐рдкрдЯрдирд╛ рдирд╣реАрдВ рдерд╛ред рд╣рд╛рд▓ рддрдХред
рдпрд╣ рдкреЛрд╕реНрдЯ рдЗрд╕ рдмрд╛рдд рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ Node.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╡реЗрдм рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдХреИрд╕реЗ рд╕реАрдЦрд╛, рдФрд░ 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рд╡реЗрд╢реЛрдВ, рдПрдХреНрд╕рдкреНрд░реЗрд╕, Ko.js рдФрд░ Hapi.js. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг HTTP рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрдиреЗ рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рддреБрд▓рдирд╛ рдХреАред
рдиреЛрдЯ: рдпрджрд┐ рдЖрдк рдПрдХ рдЕрдиреБрднрд╡реА Node.js рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рд╕реЛрдЪреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╕рднреА рдкреНрд░рд╛рдердорд┐рдХ / рд╕рд░рд▓ рд╣реИред ┬п \ _ (уГД) _ / уГДред
рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдХреБрдЫ рдореВрд▓ рдмрд╛рддреЗрдВ
рдЬрдм рдореИрдВрдиреЗ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╡реЗрдм рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдореИрдВ
рдХреМрд░рд╕реЗрд░рд╛ рдХреЗ рдкреНрд░реЛрдлреЗрд╕рд░ рдбреЗрд╡рд┐рдб рд╡реЗрдЯрд░рд▓ рджреНрд╡рд╛рд░рд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдПрдХ рдХреЛрд░реНрд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдЕрднреА рднреА
рдкрд┐рдпрд░реНрд╕рди рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреЛрд░реНрд╕ рдкрд╕рдВрдж рдЖрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдиреЗ рд╕рдордЭрд╛рдпрд╛ рдХрд┐ рд╣реБрдб рдХреЗ рддрд╣рдд рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рдерд╛, рдПрдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк
рдХрдВрдкреНрдпреВрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ
рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЪрдорддреНрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рд╡рд┐рд╡рд░рдг рдкрдврд╝реЗрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред
HTTP (рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рдХрдВрдкреНрдпреВрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрдИ рд╣реИрдВ, рдЬреИрд╕реЗ
рдПрд╕рдПрдордЯреАрдкреА (рд╕рд┐рдВрдкрд▓ рдореЗрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓) ,
рдПрдлрдЯреАрдкреА (рдлрд╛рдЗрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓) ,
рдкреАрдУрдкреА 3 (рдкреЛрд╕реНрдЯ рдСрдлрд┐рд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ 3), рдФрд░ рдЗрд╕реА рддрд░рд╣ред
рдпреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ / рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк, рдирд┐рдпрдо, рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рд╢рдмреНрджрд╛рд░реНрде, рдЖрджрд┐ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЬрдмрдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдиреЗрдЯ рдкрд░ред
рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рдмрдирд╛рдо рдУрдПрд╕рдЖрдИ рд╕реЗ: рджреЛ рдореЙрдбрд▓ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИ?рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЖрдорддреМрд░ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ HTTP, рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░, рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджреЛ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЬрд┐рд╕ HTTP рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЪрд▓рддрд╛ рд╣реИ рд╡рд╣ рдЕрд▓рдЧ рд╣реИред рдЗрд╕реЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд░рд╣рд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдСрдкрд░реЗрд╢рди рдХреЗ рдЕрдиреБрд░реЛрдз / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЛрдб рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд░ рдЗрдореЗрдЬ, рдлреЛрдВрдЯ, рдХрдВрдЯреЗрдВрдЯ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреЛ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рднреЗрдЬрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмреНрд░рд╛рдЙрдЬрд░ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдХрд╛ рдХрдиреЗрдХреНрд╢рди рдХрдЯ рдЬрд╛рддрд╛ рд╣реИред

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

URL рд╕рдВрд░рдЪрдирд╛
HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрдИ рддрд░реАрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдЖрдо рд╣реИрдВ GET рдФрд░ POSTред рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдПрдбреНрд░реЗрд╕ рдмрд╛рд░ рдореЗрдВ URL рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ URL рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ GET рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕рд╣реА рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ HTTP рдЕрдиреБрд░реЛрдз рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЙрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬреЗрдВ рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдерд╛ред рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЬреЛ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рд╡рд╣
рдЕрдкрд╛рдЪреЗ рдФрд░
рдПрдирдЬреАрдЖрдИрдПрдирдПрдХреНрд╕ рд╣реИ ред
рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВрджреЛрдиреЛрдВ рдкреВрд░реНрдг-рдореБрдХреНрдд рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдкреИрдХреЗрдЬ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдпреЛрдЬрдирд╛рдПрдВ, URL рдкреБрдирд░реНрд▓реЗрдЦрди, рд▓реЙрдЧрд┐рдВрдЧ рдФрд░ рд╕рдореАрдкрддрд╛ рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдирд╛рдо рдХреБрдЫ рд╣реИред Apache рдФрд░ NGINX C. рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдЖрдк рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд╛рдпрдерди ,
golang.org/pkg/net/http ,
рд░реВрдмреА , рдпрд╣ рд╕реВрдЪреА рдХрд╛рдлреА рд╕рдордп рддрдХ рдЪрд▓ рд╕рдХрддреА рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рднрд╛рд╖рд╛рдПрдВ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рдХрд░рддреА рд╣реИрдВред
Node.js рдХреЗ рд╕рд╛рде рдПрдХ HTTP рд╕рд░реНрд╡рд░ рдмрдирд╛рдирд╛
Node.js рдХреНрд░реЛрдо рд╡реА 8 рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдкрд░ рдирд┐рд░реНрдорд┐рдд рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдирдЯрд╛рдЗрдо рд╣реИред рдпрд╣
http рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ HTTP рд╕рд░реНрд╡рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдореВрд▓ HTTP рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП, рд╣рдо
рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо ,
рдкрде рдФрд░
URL рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдХрд┐ Node.js рджреЗрд╢реА рдореЙрдбреНрдпреВрд▓ рд╣реИрдВред
рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВред
const http = require('http')
рд╣рдо рдПрдХ MIME рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╢рдмреНрджрдХреЛрд╢ рднреА рдмрдирд╛рдПрдВрдЧреЗ рддрд╛рдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдпреБрдХреНрдд MIME рдкреНрд░рдХрд╛рд░ рдХреЛ рдЕрдиреБрд░реЛрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХреЗрдВред MIME рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА
рдЗрдВрдЯрд░рдиреЗрдЯ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рдирдВрдмрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред
const mimeTypes = { '.html': 'text/html', '.js': 'text/javascript', '.css': 'text/css', '.ico': 'image/x-icon', '.png': 'image/png', '.jpg': 'image/jpeg', '.gif': 'image/gif', '.svg': 'image/svg+xml', '.json': 'application/json', '.woff': 'font/woff', '.woff2': 'font/woff2' }
рдЕрдм рд╣рдо рдлрд╝рдВрдХреНрд╢рди
http.createServer()
рд╕рд╛рде рдПрдХ HTTP рд╕рд░реНрд╡рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ
http.Server
рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг
http.Server
ред
const server = http.createServer()
рд╣рдо рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде
createServer()
рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рд╣рд░ рдмрд╛рд░ рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
server.on('request', (req, res) => {
рд╕рд░реНрд╡рд░ рдХреЛ рдкреЛрд░реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде
server
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА
listen
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рд╕рд░реНрд╡рд░ рдкрд░ рд╕реБрдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
5000
ред
server.listen(5000)
request
рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдирдХрдорд┐рдВрдЧрдореЗрд╕реЗрдЬ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд┐рддрд┐, рд╣реЗрдбрд░ рдФрд░ рдбреЗрдЯрд╛ред
response
рдСрдмреНрдЬреЗрдХреНрдЯ
ServerResponse рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬреЛ рдПрдХ
рд▓реЗрдЦрди рдпреЛрдЧреНрдп рд╕реНрдЯреНрд░реАрдо рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдХреНрд╡реЗрд░реА рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
рд╕рднреА рдХреЛрдб рдЧреНрд▓рд┐рдЪ рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд░реАрдорд┐рдХреНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
https://glitch.com/edit/#!/node-httpNode.js рдЪреМрдЦрдЯреЗ рдХреЗ рд╕рд╛рде рдПрдХ HTTP рд╕рд░реНрд╡рд░ рдмрдирд╛рдирд╛
рдПрдХреНрд╕рдкреНрд░реЗрд╕ ,
Ko.js рдФрд░
Hapi.js рдЬреИрд╕реЗ Node.js рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧреА
рдорд┐рдбрд╡реЗрдЕрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ, рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЦреБрдж рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрдиреЗ рд╕реЗ рдмрдЪрд╛рддреЗ рд╣реИрдВред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдмрд┐рдирд╛ рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдмрд╕ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдХрд┐рд╕реА рднреА рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдкрд╛рдЧрд▓ рд╣реЛ рдЬрд╛рдПрдВ рдЬреЛ рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реИред
рд╕реНрдерд┐рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП
рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХрд╛ рдЕрдкрдирд╛ рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд▓рдЧрдЗрди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ Node.js рдХреЗ рд╕рдорд╛рди рд╣реА рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИред
const express = require('express') const app = express()
Koa.js рдХреЗ рдореВрд▓ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕рдорд╛рди рдкреНрд▓рдЧрдЗрди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЖрд╡рд╢реНрдпрдХ рдкреНрд▓рдЧрдЗрди рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред Koa.js рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЙрд▓рдмреИрдХ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрдк рд╕реНрдерд┐рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП
koa-static
рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
const serve = require('koa-static') const koa = require('koa') const app = new koa()
Hapi.js рдЕрдиреБрдХреВрд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░
server
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШреВрдорддрд╛ рд╣реИред рдпрд╣ рд░рд╛рдЙрдЯрд┐рдВрдЧ, рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди, рдЗрддреНрдпрд╛рджрд┐ рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕реНрдереИрддрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ
inert
рдХрд╣рд╛
inert
ред
const path = require('path') const hapi = require('hapi') const inert = require('inert')
рдЗрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖ рд╣реИрдВ, рдФрд░ рд╡реЗ рдмрдбрд╝реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдВрдЧреЗ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ HTML рдкреГрд╖реНрда рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдкрд░ рдмрд╣реБрдд рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕ рдкрд░ рдЖрдк рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд╕рдорд╛рдкрди
рдпрджрд┐ рдЪреАрдЬреЛрдВ рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрдХреНрд╖ рд╣рдореЗрд╢рд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрд▓реЗрдЦ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧреА рдкрд░рд┐рдЪрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рднреА
Node.js рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЕрддреНрдпрдзрд┐рдХ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ рдХрд┐рд╕реА рднреА рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдФрд░ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред