{"id":7133,"date":"2026-10-05T11:54:15","date_gmt":"2026-10-05T08:24:15","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=7133"},"modified":"2026-10-05T11:54:15","modified_gmt":"2026-10-05T08:24:15","slug":"%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%b3%d8%a7%d8%ae%d8%aa-%db%8c%da%a9-%d8%b3%d8%b1%d9%88%d8%b1-http-%d8%af%d8%b1-go","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%b3%d8%a7%d8%ae%d8%aa-%db%8c%da%a9-%d8%b3%d8%b1%d9%88%d8%b1-http-%d8%af%d8%b1-go\/","title":{"rendered":"\u0622\u0645\u0648\u0632\u0634 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u062f\u0631 Go"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u0645\u0642\u062f\u0645\u0647<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0648\u0642\u062a \u062e\u0648\u062f \u0631\u0627 \u0635\u0631\u0641 \u0633\u0627\u062e\u062a \u0633\u0631\u0648\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0632\u06cc\u0639 \u0645\u062d\u062a\u0648\u0627 \u0631\u0648\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u067e\u0631\u0648\u062a\u06a9\u0644 \u0627\u0646\u062a\u0642\u0627\u0644 \u0627\u0628\u0631\u0645\u062a\u0646 (HTTP) \u0628\u062e\u0634 \u0632\u06cc\u0627\u062f\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0645\u062d\u062a\u0648\u0627 \u0631\u0627 \u0633\u0631\u0648 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0686\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0639\u06a9\u0633 \u06af\u0631\u0628\u0647 \u0628\u0627\u0634\u062f \u0648 \u0686\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0647\u0645\u0627\u0646 \u0622\u0645\u0648\u0632\u0634\u06cc \u06a9\u0647 \u0647\u0645\u06cc\u0646 \u062d\u0627\u0644\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062e\u0648\u0627\u0646\u062f\u0646\u0634 \u0647\u0633\u062a\u06cc\u062f. \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f Go \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062f\u0627\u062e\u0644\u06cc \u0627\u0632 \u0633\u0627\u062e\u062a \u0633\u0631\u0648\u0631 HTTP \u0628\u0631\u0627\u06cc \u0633\u0631\u0648 \u06a9\u0631\u062f\u0646 \u0645\u062d\u062a\u0648\u0627\u06cc \u0648\u0628 \u0634\u0645\u0627 \u06cc\u0627 \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc HTTP \u0628\u0647 \u0622\u0646 \u0633\u0631\u0648\u0631\u0647\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f Go \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f \u0648 \u0633\u067e\u0633 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc\u200c\u062f\u0647\u06cc\u062f \u062a\u0627 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc (Query String)\u060c \u0628\u062f\u0646\u0647 \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0641\u0631\u0645 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u062e\u0648\u0627\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0628\u0627 \u0647\u062f\u0631\u0647\u0627 \u0648 \u06a9\u062f\u0647\u0627\u06cc \u0648\u0636\u0639\u06cc\u062a \u0633\u0641\u0627\u0631\u0634\u06cc HTTP \u067e\u0627\u0633\u062e \u062f\u0647\u062f. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646\u060c \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u062f \u06a9\u0647 \u0686\u0637\u0648\u0631 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 (Middleware) \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0642\u0627\u0628\u0644\u200c\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f\u060c Endpoint\u0647\u0627\u06cc JSON API \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc \u0622\u0645\u0627\u062f\u0647 production \u2014 \u0634\u0627\u0645\u0644 Timeout\u060c \u062e\u0627\u0645\u0648\u0634\u200c\u0634\u062f\u0646 \u0645\u0646\u0638\u0645 (Graceful Shutdown) \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc HTTPS \u2014 \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0646\u06a9\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u067e\u06a9\u06cc\u062c net\/http \u062f\u0631 Go \u0628\u0644\u0648\u06a9\u200c\u0647\u0627\u06cc \u0633\u0627\u0632\u0646\u062f\u0647 \u0627\u0635\u0644\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u06cc HTTP \u0622\u0645\u0627\u062f\u0647 production \u0628\u062f\u0648\u0646 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u062e\u0627\u0631\u062c\u06cc \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0634\u0627\u0645\u0644 \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc\u060c \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc TLS.<\/li>\n\n\n\n<li>\u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633 http.Handler \u067e\u0627\u06cc\u0647 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 HTTP \u062f\u0631 Go \u0627\u0633\u062a \u2014 \u0628\u0631\u0627\u06cc \u0647\u0646\u062f\u0644\u0631\u0647\u0627\u06cc \u062f\u0627\u0631\u0627\u06cc \u0648\u0636\u0639\u06cc\u062a (Stateful) \u0645\u062a\u062f ServeHTTP \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0627\u0632 http.HandlerFunc \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u062a\u0648\u0627\u0628\u0639 \u0633\u0627\u062f\u0647 \u0628\u0647 \u0647\u0646\u062f\u0644\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li>\u0647\u0645\u06cc\u0634\u0647 \u0628\u0647\u200c\u062c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0627\u0633\u0631\u06cc \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u060c http.ServeMux \u062e\u0648\u062f\u062a\u0627\u0646 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f \u062a\u0627 \u0627\u0632 \u0645\u0634\u06a9\u0644\u0627\u062a \u0633\u062e\u062a\u06cc \u06a9\u0647 \u0646\u0627\u0634\u06cc \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0645\u0634\u062a\u0631\u06a9 \u062a\u0648\u0633\u0637 \u0686\u0646\u062f \u0628\u062e\u0634 \u0627\u0632 \u06a9\u062f\u062a\u0627\u0646 \u0627\u0633\u062a\u060c \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li>\u062f\u0631 \u0645\u062d\u06cc\u0637 production\u060c Timeout\u0647\u0627\u06cc \u0635\u0631\u06cc\u062d \u0633\u0631\u0648\u0631 (\u200fReadTimeout\u060c WriteTimeout \u0648 IdleTimeout) \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0632 \u0628\u0627\u0632 \u0646\u06af\u0647\u200c\u062f\u0627\u0634\u062a\u0646 \u062f\u0627\u0626\u0645\u06cc \u0627\u062a\u0635\u0627\u0644\u200c\u0647\u0627 \u062a\u0648\u0633\u0637 \u06a9\u0644\u0627\u06cc\u0646\u062a\u200c\u0647\u0627\u06cc \u06a9\u0646\u062f \u06cc\u0627 \u0645\u062e\u0631\u0628 \u0648 \u062a\u062e\u0644\u06cc\u0647 \u0645\u0646\u0627\u0628\u0639 \u0633\u0631\u0648\u0631 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0634\u0648\u062f.<\/li>\n\n\n\n<li>\u062a\u0648\u0627\u0628\u0639 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631\u06cc \u06a9\u0647 http.Handler \u0645\u06cc\u200c\u06af\u06cc\u0631\u0646\u062f \u0648 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u0646\u062f\u060c \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0647\u0646\u062f\u0644\u0631\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0645\u0646\u0637\u0642 \u0642\u0627\u0628\u0644\u200c\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0628\u0631\u0627\u06cc \u0644\u0627\u06af\u200c\u06af\u06cc\u0631\u06cc\u060c \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a\u060c \u0647\u062f\u0631\u0647\u0627 \u0648 \u0633\u0627\u06cc\u0631 \u0645\u0633\u0627\u0626\u0644 \u0645\u0634\u062a\u0631\u06a9 (Cross-Cutting) \u0628\u067e\u0648\u0634\u0627\u0646\u06cc\u062f\u061b \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f\u0646 \u0647\u0631 \u0647\u0646\u062f\u0644\u0631.<\/li>\n\n\n\n<li>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 ()http.Server.Shutdown \u062e\u0627\u0645\u0648\u0634\u200c\u0634\u062f\u0646 \u0645\u0646\u0638\u0645 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u067e\u0630\u06cc\u0631\u0634 \u0627\u062a\u0635\u0627\u0644\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0645\u062a\u0648\u0642\u0641 \u0634\u0648\u062f\u060c \u062f\u0631\u062d\u0627\u0644\u06cc\u200c\u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062f\u0631 \u062d\u0627\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0627\u0645\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0627\u0632 \u0642\u0637\u0639\u200c\u0634\u062f\u0646 \u0627\u062a\u0635\u0627\u0644\u200c\u0647\u0627 \u0647\u0646\u06af\u0627\u0645 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u06cc\u0627 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0633\u0631\u0648\u0631 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li>Go \u0633\u0647 \u0631\u0627\u0647 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f: \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 ()r.URL.Query\u060c \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 r.Body \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0641\u0631\u0645 \u0627\u0632 \u0637\u0631\u06cc\u0642 ()r.PostFormValue \u06cc\u0627 ()r.FormValue \u2014 \u06af\u0632\u06cc\u0646\u0647 \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u062f \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li>\u0647\u0645\u06cc\u0634\u0647 \u0647\u062f\u0631\u0647\u0627\u06cc \u0645\u0646\u0627\u0633\u0628 HTTP \u0631\u0627 \u0628\u0627 ()w.Header().Set \u0642\u0628\u0644 \u0627\u0632 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc ()w.WriteHeader \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f\u061b \u0686\u0631\u0627 \u06a9\u0647 \u067e\u0633 \u0627\u0632 \u0627\u0631\u0633\u0627\u0644 \u06a9\u062f \u0648\u0636\u0639\u06cc\u062a \u0648 \u0628\u062f\u0646\u0647 \u0628\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a\u060c \u0647\u062f\u0631\u0647\u0627 \u062f\u06cc\u06af\u0631 \u0642\u0627\u0628\u0644 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u06cc\u0633\u062a\u0646\u062f.<\/li>\n\n\n\n<li>\u0633\u0631\u0648\u0631\u0647\u0627\u06cc production \u0646\u06cc\u0627\u0632\u0645\u0646\u062f HTTPS \u0628\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc TLS\u060c \u0647\u062f\u0631\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc (X-Frame-Options \u0648 Content-Security-Policy)\u060c Endpoint\u0647\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0633\u0644\u0627\u0645\u062a (Health Check)\u060c \u0644\u0627\u06af\u200c\u06af\u06cc\u0631\u06cc \u0633\u0627\u062e\u062a\u0627\u0631\u06cc\u0627\u0641\u062a\u0647 \u0648 \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0647\u0633\u062a\u0646\u062f.<\/li>\n\n\n\n<li>\u0645\u062f\u0644 \u0647\u0645\u200c\u0632\u0645\u0627\u0646\u06cc (Concurrency) \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u06af\u0648\u0631\u0648\u062a\u06cc\u0646 \u062f\u0631 Go \u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a HTTP \u0631\u0627 \u062f\u0631 \u0646\u062e (Thread) \u0633\u0628\u06a9\u0650 \u062e\u0648\u062f\u0634 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 Go \u0631\u0627 \u0628\u0647\u200c\u0637\u0648\u0631 \u0627\u0633\u062a\u062b\u0646\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u0628\u0627 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0628\u0627\u0644\u0627 \u06a9\u0647 \u0647\u0632\u0627\u0631\u0627\u0646 \u0627\u062a\u0635\u0627\u0644 \u0647\u0645\u200c\u0632\u0645\u0627\u0646 \u0631\u0627 \u0628\u0647\u200c\u0637\u0648\u0631 \u06a9\u0627\u0631\u0622\u0645\u062f \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u0645\u0646\u0627\u0633\u0628 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0646\u0633\u062e\u0647 \u06f1.\u06f1\u06f6 \u06cc\u0627 \u0628\u0627\u0644\u0627\u062a\u0631 Go \u0646\u0635\u0628\u200c\u0634\u062f\u0647. \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc\u060c \u0622\u0645\u0648\u0632\u0634 \u00ab\u0646\u0635\u0628 Go\u00bb \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u062e\u0648\u062f \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li>\u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 curl \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0648\u0628. \u0628\u0631\u0627\u06cc \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0628\u0627 curl\u060c \u0645\u0642\u0627\u0644\u0647 \u00ab\u062f\u0627\u0646\u0644\u0648\u062f \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0628\u0627 cURL\u00bb \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f.<\/li>\n\n\n\n<li>\u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 JSON \u062f\u0631 Go \u06a9\u0647 \u062f\u0631 \u0622\u0645\u0648\u0632\u0634 \u00ab\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 JSON \u062f\u0631 Go\u00bb \u0622\u0645\u062f\u0647 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>\u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u067e\u06a9\u06cc\u062c context \u062f\u0631 Go \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0645\u0648\u0632\u0634 \u00ab\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Context \u062f\u0631 Go\u00bb \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u062f.<\/li>\n\n\n\n<li>\u062a\u062c\u0631\u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u06af\u0648\u0631\u0648\u062a\u06cc\u0646\u200c\u0647\u0627 \u0648 \u062e\u0648\u0627\u0646\u062f\u0646 \u06a9\u0627\u0646\u0627\u0644\u200c\u0647\u0627 \u06a9\u0647 \u0627\u0632 \u0622\u0645\u0648\u0632\u0634 \u00ab\u0627\u062c\u0631\u0627\u06cc \u0647\u0645\u200c\u0632\u0645\u0627\u0646 \u0686\u0646\u062f \u062a\u0627\u0628\u0639 \u062f\u0631 Go\u00bb \u0642\u0627\u0628\u0644 \u06a9\u0633\u0628 \u0627\u0633\u062a.<\/li>\n\n\n\n<li>\u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u0648 \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc HTTP (\u062a\u0648\u0635\u06cc\u0647\u200c\u0634\u062f\u0647).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u0631\u0648\u0698\u0647<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 Go\u060c \u0628\u06cc\u0634\u062a\u0631 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc HTTP \u062a\u0648\u0633\u0637 \u067e\u06a9\u06cc\u062c net\/http \u062f\u0631 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0628\u0642\u06cc\u0647 \u0627\u0631\u062a\u0628\u0627\u0637 \u0634\u0628\u06a9\u0647\u200c\u0627\u06cc \u062a\u0648\u0633\u0637 \u067e\u06a9\u06cc\u062c net \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u067e\u06a9\u06cc\u062c net\/http \u0646\u0647\u200c\u062a\u0646\u0647\u0627 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc HTTP \u0631\u0627 \u062f\u0631 \u0628\u0631 \u062f\u0627\u0631\u062f\u060c \u0628\u0644\u06a9\u0647 \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u0647\u0645 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0622\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0627\u06cc \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f \u06a9\u0647 \u0627\u0632 \u062a\u0627\u0628\u0639 http.ListenAndServe \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \/ \u0648 \/hello \u067e\u0627\u0633\u062e \u0645\u06cc\u200c\u062f\u0647\u062f. \u0633\u067e\u0633 \u0622\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc\u200c\u062f\u0647\u06cc\u062f \u062a\u0627 \u0686\u0646\u062f\u06cc\u0646 \u0633\u0631\u0648\u0631 HTTP \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0642\u0628\u0644 \u0627\u0632 \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f\u060c \u0628\u0627\u06cc\u062f \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f. \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc\u0634\u0627\u0646 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u0646\u062f \u062a\u0627 \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u06cc\u0627\u0641\u062a\u0647 \u0628\u0645\u0627\u0646\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0632 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u200c\u0627\u06cc \u0628\u0627 \u0646\u0627\u0645 projects \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0628\u062a\u062f\u0627\u060c \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc projects \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0648\u0627\u0631\u062f \u0622\u0646 \u0634\u0648\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir projects\ncd projects<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u067e\u0633\u060c \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0648\u0627\u0631\u062f \u0622\u0646 \u0634\u0648\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u0627\u0632 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc httpserver \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir httpserver\ncd httpserver<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u06a9\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0633\u0627\u062e\u062a\u0647\u200c\u0627\u06cc\u062f \u0648 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc httpserver \u0647\u0633\u062a\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0633\u0631\u0648\u0631 HTTP \u062e\u0648\u062f \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u06af\u0648\u0634 \u062f\u0627\u062f\u0646 \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0648 \u0627\u0631\u0627\u0626\u0647 \u067e\u0627\u0633\u062e\u200c\u0647\u0627<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u062f\u0631 Go \u0634\u0627\u0645\u0644 \u062f\u0648 \u062c\u0632\u0621 \u0627\u0635\u0644\u06cc \u0627\u0633\u062a: \u0633\u0631\u0648\u0631 \u06a9\u0647 \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0631\u0633\u06cc\u062f\u0647 \u0627\u0632 \u06a9\u0644\u0627\u06cc\u0646\u062a\u200c\u0647\u0627\u06cc HTTP \u06af\u0648\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u06cc\u06a9 \u06cc\u0627 \u0686\u0646\u062f \u0647\u0646\u062f\u0644\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u067e\u0627\u0633\u062e \u0645\u06cc\u200c\u062f\u0647\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u0627\u0628\u062a\u062f\u0627 \u0627\u0632 \u062a\u0627\u0628\u0639 http.HandleFunc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0628\u06af\u0648\u06cc\u06cc\u062f \u0647\u0646\u06af\u0627\u0645 \u062f\u0631\u06cc\u0627\u0641\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u060c \u06a9\u062f\u0627\u0645 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0622\u0646 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u062f. \u0633\u067e\u0633 \u0627\u0632 \u062a\u0627\u0628\u0639 http.ListenAndServe \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0622\u0646 \u0628\u06af\u0648\u06cc\u06cc\u062f \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc HTTP \u062c\u062f\u06cc\u062f \u0628\u06af\u0631\u062f\u062f \u0648 \u0633\u067e\u0633 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u062a\u0648\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631\u06cc \u06a9\u0647 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f \u0633\u0631\u0648 \u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627\u060c \u062f\u0627\u062e\u0644 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc httpserver \u06a9\u0647 \u0633\u0627\u062e\u062a\u06cc\u062f\u060c \u0628\u0627 nano \u06cc\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u062f\u0644\u062e\u0648\u0627\u0647 \u062e\u0648\u062f\u060c \u0641\u0627\u06cc\u0644 main.go \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano main.go<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0641\u0627\u06cc\u0644 main.go\u060c \u062f\u0648 \u062a\u0627\u0628\u0639 \u0628\u0647 \u0646\u0627\u0645\u200c\u0647\u0627\u06cc getRoot \u0648 getHello \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f \u062a\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u062a\u0648\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0634\u0645\u0627 \u0639\u0645\u0644 \u06a9\u0646\u0646\u062f. \u0633\u067e\u0633\u060c \u06cc\u06a9 \u062a\u0627\u0628\u0639 main \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f \u0648 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0647\u0646\u062f\u0644\u0631\u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0627 \u062a\u0627\u0628\u0639 http.HandleFunc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u061b \u0628\u0627 \u067e\u0627\u0633 \u062f\u0627\u062f\u0646 \u0645\u0633\u06cc\u0631 \/ \u0628\u0631\u0627\u06cc \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 getRoot \u0648 \u0645\u0633\u06cc\u0631 \/hello \u0628\u0631\u0627\u06cc \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 getHello. \u0648\u0642\u062a\u06cc \u0647\u0646\u062f\u0644\u0631\u0647\u0627 \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u062f\u060c \u062a\u0627\u0628\u0639 http.ListenAndServe \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0633\u0631\u0648\u0631 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u0648\u062f \u0648 \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u06af\u0648\u0634 \u062f\u0647\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u062a\u0627\u0646 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u0647\u0646\u062f\u0644\u0631\u0647\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0634\u0648\u0646\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package main\n\nimport (\n    \"errors\"\n    \"fmt\"\n    \"io\"\n    \"net\/http\"\n    \"os\"\n)\n\nfunc getRoot(w http.ResponseWriter, r *http.Request) {\n    fmt.Printf(\"got \/ request\\n\")\n    io.WriteString(w, \"This is my website!\\n\")\n}\nfunc getHello(w http.ResponseWriter, r *http.Request) {\n    fmt.Printf(\"got \/hello request\\n\")\n    io.WriteString(w, \"Hello, HTTP!\\n\")\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0627\u0648\u0644\u06cc\u0646 \u0628\u062e\u0634 \u06a9\u062f\u060c \u067e\u06a9\u06cc\u062c \u0628\u0631\u0646\u0627\u0645\u0647 Go \u062e\u0648\u062f \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u0631\u0627 \u0627\u06cc\u0645\u067e\u0648\u0631\u062a \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0648 \u062f\u0648 \u062a\u0627\u0628\u0639 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f: \u062a\u0627\u0628\u0639 getRoot \u0648 \u062a\u0627\u0628\u0639 getHello. \u0647\u0631 \u062f\u0648\u06cc \u0627\u06cc\u0646 \u062a\u0648\u0627\u0628\u0639 \u0647\u0645\u0627\u0646 \u0627\u0645\u0636\u0627\u06cc (Signature) \u062a\u0627\u0628\u0639 \u0631\u0627 \u062f\u0627\u0631\u0646\u062f\u061b \u06cc\u0639\u0646\u06cc \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc \u06cc\u06a9\u0633\u0627\u0646\u06cc \u0642\u0628\u0648\u0644 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f: \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 http.ResponseWriter \u0648 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 *http.Request. \u0627\u06cc\u0646 \u0627\u0645\u0636\u0627\u06cc \u062a\u0627\u0628\u0639 \u0628\u0631\u0627\u06cc \u062a\u0648\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 HTTP \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0628\u0647\u200c\u0635\u0648\u0631\u062a http.HandlerFunc \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0648\u0642\u062a\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0628\u0647 \u0633\u0631\u0648\u0631 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0633\u0631\u0648\u0631 \u0627\u06cc\u0646 \u062f\u0648 \u0645\u0642\u062f\u0627\u0631 \u0631\u0627 \u0628\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u0647 \u0648 \u0633\u067e\u0633 \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0631\u0627 \u0628\u0627 \u0622\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u06cc\u06a9 http.HandlerFunc\u060c \u0645\u0642\u062f\u0627\u0631 http.ResponseWriter (\u06a9\u0647 \u062f\u0631 \u0647\u0646\u062f\u0644\u0631\u0647\u0627\u06cc \u0634\u0645\u0627 w \u0646\u0627\u0645 \u062f\u0627\u0631\u062f) \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u067e\u0627\u0633\u062e\u06cc \u06a9\u0647 \u0628\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a\u0650 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u06a9\u0646\u0646\u062f\u0647 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u061b \u0645\u0627\u0646\u0646\u062f \u0628\u062f\u0646\u0647 \u067e\u0627\u0633\u062e \u06cc\u0627 \u06a9\u062f \u0648\u0636\u0639\u06cc\u062a. \u0633\u067e\u0633\u060c \u0645\u0642\u062f\u0627\u0631 *http.Request (\u06a9\u0647 \u062f\u0631 \u0647\u0646\u062f\u0644\u0631\u0647\u0627\u06cc \u0634\u0645\u0627 r \u0646\u0627\u0645 \u062f\u0627\u0631\u062f) \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062f\u0631\u0628\u0627\u0631\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u06a9\u0647 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u061b \u0645\u0627\u0646\u0646\u062f \u0628\u062f\u0646\u0647\u200c\u0627\u06cc \u06a9\u0647 \u062f\u0631 \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a POST \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u06cc\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u062f\u0631\u0628\u0627\u0631\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a\u06cc \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0641\u0631\u0633\u062a\u0627\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0639\u0644\u0627\u064b \u062f\u0631 \u0647\u0631 \u062f\u0648 \u0647\u0646\u062f\u0644\u0631 HTTP \u062e\u0648\u062f\u060c \u0627\u0632 fmt.Printf \u0628\u0631\u0627\u06cc \u0686\u0627\u067e \u0632\u0645\u0627\u0646 \u0648\u0631\u0648\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0647 \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0648 \u0633\u067e\u0633 \u0628\u0627 http.ResponseWriter \u0645\u062a\u0646\u06cc \u0631\u0627 \u0628\u0647 \u0628\u062f\u0646\u0647 \u067e\u0627\u0633\u062e \u0645\u06cc\u200c\u0641\u0631\u0633\u062a\u06cc\u062f. http.ResponseWriter \u06cc\u06a9 io.Writer \u0627\u0633\u062a\u061b \u06cc\u0639\u0646\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0647\u0631 \u0686\u06cc\u0632\u06cc \u06a9\u0647 \u0642\u0627\u062f\u0631 \u0628\u0647 \u0646\u0648\u0634\u062a\u0646 \u062f\u0631 \u0622\u0646 \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633 \u0628\u0627\u0634\u062f\u060c \u0628\u0631\u0627\u06cc \u0646\u0648\u0634\u062a\u0646 \u062f\u0631 \u0628\u062f\u0646\u0647 \u067e\u0627\u0633\u062e \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u0627\u0632 \u062a\u0627\u0628\u0639 io.WriteString \u0628\u0631\u0627\u06cc \u0646\u0648\u0634\u062a\u0646 \u067e\u0627\u0633\u062e \u062e\u0648\u062f \u062f\u0631 \u0628\u062f\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631\u062d\u0627\u0644\u06cc\u200c\u06a9\u0647 http.HandlerFunc \u0631\u0627\u0647\u06cc convenient \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0633\u0627\u062f\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0647\u0646\u062f\u0644\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0633\u062a\u060c \u0627\u0631\u0632\u0634 \u062f\u0627\u0631\u062f \u06a9\u0647 \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633 http.Handler \u0631\u0627 \u06a9\u0647 \u067e\u0627\u06cc\u0647 \u0633\u0627\u062e\u062a \u0622\u0646 \u0627\u0633\u062a \u0647\u0645 \u0628\u0634\u0646\u0627\u0633\u06cc\u062f. \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633 http.Handler \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0647\u0631 \u0646\u0648\u0639\u06cc (Type) \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u06a9\u0647 \u06cc\u06a9 \u0645\u062a\u062f \u0648\u0627\u062d\u062f \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>type Handler interface {\n    ServeHTTP(ResponseWriter, *Request)\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0647\u0631 \u0633\u0627\u062e\u062a\u0627\u0631\u06cc (Struct) \u06a9\u0647 \u0645\u062a\u062f ServeHTTP \u0628\u0627 \u0627\u06cc\u0646 \u0627\u0645\u0636\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0627\u06cc\u0646 \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633 \u0631\u0627 \u0627\u0631\u0636\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0632 \u0622\u0646 \u062f\u0631 \u0647\u0631 \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u067e\u06a9\u06cc\u062c HTTP \u062f\u0631 Go \u0627\u0646\u062a\u0638\u0627\u0631 \u0647\u0646\u062f\u0644\u0631 \u062f\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u061b \u0627\u0632 \u062c\u0645\u0644\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u062f\u0648\u0645 http.ListenAndServe. \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0632\u0645\u0627\u0646\u06cc \u0645\u0641\u06cc\u062f \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0647\u0646\u062f\u0644\u0631 \u0634\u0645\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062d\u0645\u0644 \u0648\u0636\u0639\u06cc\u062a (State) \u2014 \u0645\u0627\u0646\u0646\u062f \u0627\u062a\u0635\u0627\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u06cc\u0627 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u2014 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u0648 \u0646\u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0633\u0631\u0627\u0633\u0631\u06cc \u067e\u0627\u0633 \u0628\u062f\u0647\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>type helloHandler struct {\n    db *sql.DB\n}\n\nfunc (h *helloHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n    fmt.Fprintf(w, \"Hello from a handler with a DB connection!\")\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0645\u0642\u0627\u0628\u0644\u060c http.HandlerFunc \u06cc\u06a9 \u0645\u06cc\u0627\u0646\u200c\u0628\u0631 \u0627\u0633\u062a. \u062e\u0648\u062f\u0634 \u0646\u0648\u0639\u06cc \u0627\u0633\u062a \u06a9\u0647 http.Handler \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0647\u0631 \u062a\u0627\u0628\u0639\u06cc \u0628\u0627 \u0627\u0645\u0636\u0627\u06cc \u062f\u0631\u0633\u062a \u0631\u0627 \u0628\u062f\u0648\u0646 \u062a\u0639\u0631\u06cc\u0641 Struct \u062c\u062f\u06cc\u062f\u060c \u0645\u062b\u0644 \u06cc\u06a9 \u0647\u0646\u062f\u0644\u0631 \u0631\u0641\u062a\u0627\u0631 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0632\u06cc\u0631 \u06a9\u0627\u067e\u0648\u062a\u060c \u0645\u062a\u062f ServeHTTP \u0622\u0646 \u0635\u0631\u0641\u0627\u064b \u062e\u0648\u062f\u0650 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u067e\u0633 \u0648\u0642\u062a\u06cc \u0645\u06cc\u200c\u0646\u0648\u06cc\u0633\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mux.HandleFunc(\"\/\", getRoot)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Go \u062a\u0627\u0628\u0639 getRoot \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 http.HandlerFunc \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 http.Handler \u0631\u0648\u06cc mux \u062b\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0647\u0631 \u062f\u0648 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0646\u062a\u06cc\u062c\u0647 \u06cc\u06a9\u0633\u0627\u0646\u06cc \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u061b \u062a\u0645\u0627\u06cc\u0632 \u0622\u0646\u0647\u0627\u060c \u062a\u0641\u0627\u0648\u062a\u0650 \u0631\u0627\u062d\u062a\u06cc \u062f\u0631 \u0628\u0631\u0627\u0628\u0631 \u0633\u0627\u062e\u062a\u0627\u0631 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0647\u0646\u062f\u0644\u0631\u0647\u0627\u06cc \u0633\u0627\u062f\u0647\u060c http.HandlerFunc \u06a9\u062f \u0631\u0627 \u0645\u062e\u062a\u0635\u0631 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f. \u0628\u0631\u0627\u06cc \u0647\u0646\u062f\u0644\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0648\u0636\u0639\u06cc\u062a \u06cc\u0627 \u062a\u0633\u062a \u0634\u062f\u0646 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0627\u06cc\u0632\u0648\u0644\u0647 \u062f\u0627\u0631\u0646\u062f\u060c \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 http.Handler \u0631\u0648\u06cc \u06cc\u06a9 Struct \u0627\u0646\u062a\u062e\u0627\u0628 \u062a\u0645\u06cc\u0632\u062a\u0631\u06cc \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627\u060c \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0634\u0631\u0648\u0639 \u062a\u0627\u0628\u0639 main \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\nfunc main() {\n    http.HandleFunc(\"\/\", getRoot)\n    http.HandleFunc(\"\/hello\", getHello)\n    \n    err := http.ListenAndServe(\":3333\", nil)\n\n...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u062a\u0627\u0628\u0639 main\u060c \u062f\u0648 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0628\u0647 \u062a\u0627\u0628\u0639 http.HandleFunc \u062f\u0627\u0631\u06cc\u062f. \u0647\u0631 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639\u060c \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u0633\u06cc\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u0634\u062e\u0635 \u062f\u0631 \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631 \u06cc\u06a9 http.Handler \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0645\u0633\u06cc\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0646\u06af\u0627\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631\u0650 \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0622\u0646 \u0645\u0633\u06cc\u0631 \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u062f. \u067e\u0633 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f\u060c \u0628\u0647 \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0645\u06cc\u200c\u06af\u0648\u06cc\u06cc\u062f \u0648\u0642\u062a\u06cc \u06a9\u0633\u06cc \u0645\u0633\u06cc\u0631 \/ \u0631\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062f\u060c \u062a\u0627\u0628\u0639 getRoot \u0648 \u0648\u0642\u062a\u06cc \u06a9\u0633\u06cc \u0645\u0633\u06cc\u0631 \/hello \u0631\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062f\u060c \u062a\u0627\u0628\u0639 getHello \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc \u0647\u0646\u062f\u0644\u0631\u0647\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0646\u062f\u060c \u062a\u0627\u0628\u0639 http.ListenAndServe \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0633\u0631\u0648\u0631 HTTP \u0633\u0631\u0627\u0633\u0631\u06cc \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u0631\u0648\u06cc \u06cc\u06a9 \u067e\u0648\u0631\u062a \u0645\u0634\u062e\u0635 \u0648 \u0628\u0627 \u06cc\u06a9 http.Handler \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc\u060c \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u06af\u0648\u0634 \u062f\u0647\u062f. \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f\u060c \u0628\u0647 \u0633\u0631\u0648\u0631 \u0645\u06cc\u200c\u06af\u0648\u06cc\u06cc\u062f \u0631\u0648\u06cc \u00ab:3333\u00bb \u06af\u0648\u0634 \u062f\u0647\u062f. \u0628\u0627 \u0645\u0634\u062e\u0635\u200c\u0646\u06a9\u0631\u062f\u0646 \u0622\u062f\u0631\u0633 IP \u0642\u0628\u0644 \u0627\u0632 \u062f\u0648\u0646\u0642\u0637\u0647\u060c \u0633\u0631\u0648\u0631 \u0631\u0648\u06cc \u062a\u06a9\u200c\u062a\u06a9 \u0622\u062f\u0631\u0633\u200c\u0647\u0627\u06cc IP \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0634\u0645\u0627 \u06af\u0648\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0631\u0648\u06cc \u067e\u0648\u0631\u062a 3333 \u0627\u0633\u062a. \u06cc\u06a9 \u067e\u0648\u0631\u062a \u0634\u0628\u06a9\u0647 \u2014 \u0645\u0627\u0646\u0646\u062f 3333 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u2014 \u0631\u0627\u0647\u06cc \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0628\u062a\u0648\u0627\u0646\u062f \u0647\u0645\u200c\u0632\u0645\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u0628\u0627 \u0647\u0645 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u0646\u062f. \u0647\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0632 \u067e\u0648\u0631\u062a \u062e\u0648\u062f\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u067e\u0633 \u0648\u0642\u062a\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a\u06cc \u0628\u0647 \u06cc\u06a9 \u067e\u0648\u0631\u062a \u0645\u0634\u062e\u0635 \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0645\u06cc\u200c\u062f\u0627\u0646\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0622\u0646 \u067e\u0648\u0631\u062a \u0628\u0627\u06cc\u062f \u0628\u0647 \u06a9\u062f\u0627\u0645 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u0633 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f. \u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0633\u062a\u06cc\u062f \u0641\u0642\u0637 \u0627\u062a\u0635\u0627\u0644\u0627\u062a \u0628\u0647 localhost (\u0646\u0627\u0645 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0628\u0631\u0627\u06cc \u0622\u062f\u0631\u0633 IP 127.0.0.1) \u0645\u062c\u0627\u0632 \u0628\u0627\u0634\u0646\u062f\u060c \u0628\u0647\u200c\u062c\u0627\u06cc \u0622\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0633\u062a\u06cc\u062f \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f 127.0.0.1:3333.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062a\u0627\u0628\u0639 http.ListenAndServe \u0634\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0631\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 http.Handler \u0645\u0642\u062f\u0627\u0631 nil \u067e\u0627\u0633 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u062a\u0627\u0628\u0639 ListenAndServe \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0646\u0647 \u0647\u0646\u062f\u0644\u0631\u06cc \u06a9\u0647 \u062e\u0648\u062f\u062a\u0627\u0646 \u0633\u0627\u062e\u062a\u0647\u200c\u0627\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc ListenAndServe \u06cc\u06a9 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u0633\u062f\u0648\u062f\u06a9\u0646\u0646\u062f\u0647 (Blocking) \u0627\u0633\u062a\u061b \u06cc\u0639\u0646\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0627\u062c\u0631\u0627 \u062e\u0648\u062f \u0631\u0627 \u0627\u062f\u0627\u0645\u0647 \u0646\u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0648\u0642\u062a\u06cc \u06a9\u0647 ListenAndServe \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0628\u0631\u0633\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c ListenAndServe \u062a\u0627 \u0648\u0642\u062a\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u062a\u0627\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627\u0633\u062a \u06cc\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631 HTTP \u06af\u0641\u062a\u0647 \u0634\u0648\u062f \u062e\u0627\u0645\u0648\u0634 \u0634\u0648\u062f\u060c \u062a\u0645\u0627\u0645 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0627 \u0648\u062c\u0648\u062f \u0645\u0633\u062f\u0648\u062f\u06a9\u0646\u0646\u062f\u0647 \u0628\u0648\u062f\u0646 ListenAndServe \u0648 \u0646\u062f\u0627\u0634\u062a\u0646 \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u062e\u0627\u0645\u0648\u0634\u200c\u06a9\u0631\u062f\u0646 \u0633\u0631\u0648\u0631 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627\u060c \u06af\u0646\u062c\u0627\u0646\u062f\u0646 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627 \u0647\u0645\u0686\u0646\u0627\u0646 \u0645\u0647\u0645 \u0627\u0633\u062a\u061b \u0686\u0648\u0646 \u0686\u0646\u062f \u062d\u0627\u0644\u062a \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc ListenAndServe \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0634\u06a9\u0633\u062a \u0628\u062e\u0648\u0631\u062f. \u067e\u0633\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627 \u0631\u0627 \u0628\u0647 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc ListenAndServe \u062f\u0631 \u062a\u0627\u0628\u0639 main \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\nfunc main() {\n    ...\n    err := http.ListenAndServe(\":3333\", nil)\n\n    if errors.Is(err, http.ErrServerClosed) {\n        fmt.Printf(\"server closed\\n\")\n    } else if err != nil {\n        fmt.Printf(\"error starting server: %s\\n\", err)\n        os.Exit(1)\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0648\u0644\u06cc\u0646 \u062e\u0637\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c http.ErrServerClosed \u0627\u0633\u062a \u06a9\u0647 \u0648\u0642\u062a\u06cc \u0628\u0647 \u0633\u0631\u0648\u0631 \u06af\u0641\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u062e\u0627\u0645\u0648\u0634 \u06cc\u0627 \u0628\u0633\u062a\u0647 \u0634\u0648\u062f\u060c \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u06cc\u0646 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u06cc\u06a9 \u062e\u0637\u0627\u06cc \u0645\u0648\u0631\u062f\u0627\u0646\u062a\u0638\u0627\u0631 \u0627\u0633\u062a\u061b \u0686\u0648\u0646 \u062e\u0648\u062f\u062a\u0627\u0646 \u0633\u0631\u0648\u0631 \u0631\u0627 \u062e\u0627\u0645\u0648\u0634 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0627\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u0646\u0634\u0627\u0646\u200c\u062f\u0627\u062f\u0646 \u062f\u0644\u06cc\u0644 \u062a\u0648\u0642\u0641 \u0633\u0631\u0648\u0631 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u0647\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f. \u062f\u0631 \u062f\u0648\u0645\u06cc\u0646 \u0628\u0631\u0631\u0633\u06cc \u062e\u0637\u0627\u060c \u0647\u0631 \u062e\u0637\u0627\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0627\u062a\u0641\u0627\u0642 \u0628\u06cc\u0641\u062a\u062f\u060c \u062e\u0637\u0627 \u0631\u0648\u06cc \u0635\u0641\u062d\u0647 \u0686\u0627\u067e \u0634\u062f\u0647 \u0648 \u0633\u067e\u0633 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0627 \u06a9\u062f \u062e\u0637\u0627\u06cc \u06f1 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0627\u0628\u0639 os.Exit \u062e\u0627\u062a\u0645\u0647 \u0645\u06cc\u200c\u06cc\u0627\u0628\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u06cc\u06a9 \u062e\u0637\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f\u060c \u062e\u0637\u0627\u06cc address already in use \u0627\u0633\u062a. \u0627\u06cc\u0646 \u062e\u0637\u0627 \u0648\u0642\u062a\u06cc \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 ListenAndServe \u0646\u062a\u0648\u0627\u0646\u062f \u0631\u0648\u06cc \u0622\u062f\u0631\u0633 \u06cc\u0627 \u067e\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0627\u0631\u0627\u0626\u0647 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f \u06af\u0648\u0634 \u062f\u0647\u062f\u061b \u0686\u0648\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0632 \u0642\u0628\u0644 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a. \u06af\u0627\u0647\u06cc \u0627\u06cc\u0646 \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc\u200c\u0627\u0641\u062a\u062f \u0627\u06af\u0631 \u067e\u0648\u0631\u062a \u067e\u0631\u06a9\u0627\u0631\u0628\u0631\u062f \u0628\u0627\u0634\u062f \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0631\u0648\u06cc \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0634\u0645\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0627\u06af\u0631 \u0686\u0646\u062f \u0646\u0633\u062e\u0647 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f\u062a\u0627\u0646 \u0631\u0627 \u0686\u0646\u062f \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u0647\u0645 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0631\u062e \u062f\u0647\u062f. \u0627\u06af\u0631 \u062f\u0631 \u062d\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0648\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u06cc\u0646 \u062e\u0637\u0627 \u0631\u0627 \u062f\u06cc\u062f\u06cc\u062f\u060c \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u062a\u0627\u0646 \u0631\u0627 \u0627\u0632 \u0645\u0631\u062d\u0644\u0647 \u0642\u0628\u0644\u06cc \u0645\u062a\u0648\u0642\u0641 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f \u0642\u0628\u0644 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0645\u062c\u062f\u062f \u0622\u0646.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u062a\u0648\u062c\u0647:<\/strong> \u0627\u06af\u0631 \u062e\u0637\u0627\u06cc address already in use \u0631\u0627 \u062f\u06cc\u062f\u06cc\u062f \u0648 \u0646\u0633\u062e\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u062a\u0627\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0646\u06cc\u0633\u062a\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u06cc\u0639\u0646\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a\u060c \u0647\u0631 \u062c\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0639\u062f\u062f 3333 \u0631\u0627 \u062f\u06cc\u062f\u06cc\u062f\u060c \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0639\u062f\u062f\u06cc \u0628\u0627\u0644\u0627\u062a\u0631 \u0627\u0632 1024 \u0648 \u067e\u0627\u06cc\u06cc\u0646\u200c\u062a\u0631 \u0627\u0632 65535 \u2014 \u0645\u0627\u0646\u0646\u062f 3334 \u2014 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f. \u0627\u06af\u0631 \u0647\u0645\u0686\u0646\u0627\u0646 \u062e\u0637\u0627 \u0631\u0627 \u062f\u06cc\u062f\u06cc\u062f\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0644\u0627\u0632\u0645 \u0628\u0627\u0634\u062f \u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 \u067e\u0648\u0631\u062a\u0650 \u0627\u0633\u062a\u0641\u0627\u062f\u0647\u200c\u0646\u0634\u062f\u0647 \u0686\u0646\u062f \u0628\u0627\u0631 \u062a\u0644\u0627\u0634 \u06a9\u0646\u06cc\u062f. \u0648\u0642\u062a\u06cc \u067e\u0648\u0631\u062a\u0650 \u06a9\u0627\u0631\u0622\u0645\u062f\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0627\u0632 \u0647\u0645\u0627\u0646 \u0628\u0631\u0627\u06cc \u0647\u0645\u0647 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u06a9\u0647 \u06a9\u062f \u0634\u0645\u0627 \u0622\u0645\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0641\u0627\u06cc\u0644 main.go \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 go run \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0628\u0631\u062e\u0644\u0627\u0641 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc Go \u062f\u06cc\u06af\u0631\u06cc \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0646\u0648\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0647\u200c\u062a\u0646\u0647\u0627\u06cc\u06cc \u0648 \u0641\u0648\u0631\u0627\u064b \u062e\u0627\u0631\u062c \u0646\u0645\u06cc\u200c\u0634\u0648\u062f. \u0648\u0642\u062a\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0628\u0647 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0628\u0639\u062f\u06cc \u0628\u0631\u0648\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>go run main.go<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0686\u0648\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u062a\u0627\u0646 \u0647\u0646\u0648\u0632 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627\u0633\u062a\u060c \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u0633\u0631\u0648\u0631\u062a\u0627\u0646 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u0648\u0645 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f. \u0647\u0631 \u0648\u0642\u062a \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u06cc\u0627 \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u062f\u06cc\u062f\u06cc\u062f \u06a9\u0647 \u0628\u0627 \u0647\u0645\u0627\u0646 \u0631\u0646\u06af \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0647\u0633\u062a\u0646\u062f\u060c \u06cc\u0639\u0646\u06cc \u0628\u0627\u06cc\u062f \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u0648\u0645 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u0648\u0645\u060c \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 curl \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a HTTP \u0628\u0647 \u0633\u0631\u0648\u0631 HTTP \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. curl \u0627\u0628\u0632\u0627\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0631\u0648\u06cc \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627 \u0646\u0635\u0628 \u0627\u0633\u062a \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0627\u0646\u0648\u0627\u0639 \u0645\u062e\u062a\u0644\u0641\u06cc \u0627\u0632 \u0633\u0631\u0648\u0631\u0647\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0641\u0631\u0633\u062a\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc HTTP \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0631\u0648\u06cc \u067e\u0648\u0631\u062a 3333 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631\u062a\u0627\u0646 \u062f\u0631 \u0627\u0646\u062a\u0638\u0627\u0631 \u0627\u062a\u0635\u0627\u0644 \u0627\u0633\u062a\u061b \u067e\u0633 \u0628\u0627\u06cc\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 localhost \u0631\u0648\u06cc \u0647\u0645\u0627\u0646 \u067e\u0648\u0631\u062a \u0628\u0641\u0631\u0633\u062a\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl http:\/\/localhost:3333<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>This is my website!<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u062e\u0631\u0648\u062c\u06cc\u060c \u067e\u0627\u0633\u062e This is my website! \u0631\u0627 \u0627\u0632 \u062a\u0627\u0628\u0639 getRoot \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f\u061b \u0686\u0648\u0646 \u0628\u0647 \u0645\u0633\u06cc\u0631 \/ \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 HTTP \u062e\u0648\u062f \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u062f\u0631 \u0647\u0645\u0627\u0646 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644\u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0628\u0647 \u0647\u0645\u0627\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0648 \u067e\u0648\u0631\u062a \u0628\u0641\u0631\u0633\u062a\u06cc\u062f\u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u0645\u0633\u06cc\u0631 \/hello \u0631\u0627 \u0628\u0647 \u0627\u0646\u062a\u0647\u0627\u06cc \u062f\u0633\u062a\u0648\u0631 curl \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl http:\/\/localhost:3333\/hello<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Hello, HTTP!<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0628\u0627\u0631 \u067e\u0627\u0633\u062e Hello, HTTP! \u0631\u0627 \u0627\u0632 \u062a\u0627\u0628\u0639 getHello \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u0628\u0647 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644\u06cc \u06a9\u0647 \u062a\u0627\u0628\u0639 \u0633\u0631\u0648\u0631 HTTP \u0634\u0645\u0627 \u062f\u0631 \u0622\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627\u0633\u062a \u0628\u0631\u06af\u0631\u062f\u06cc\u062f\u060c \u062f\u0648 \u062e\u0637 \u062e\u0631\u0648\u062c\u06cc \u0627\u0632 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u062f\u0627\u0631\u06cc\u062f: \u06cc\u06a9\u06cc \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \/ \u0648 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \/hello:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>got \/ request\ngot \/hello request<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0686\u0648\u0646 \u0633\u0631\u0648\u0631 \u062a\u0627 \u067e\u0627\u06cc\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0647 \u06a9\u0627\u0631 \u062e\u0648\u062f \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0628\u0627\u06cc\u062f \u062e\u0648\u062f\u062a\u0627\u0646 \u0622\u0646 \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c CONTROL+C \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f \u062a\u0627 \u0633\u06cc\u06af\u0646\u0627\u0644 \u0648\u0642\u0641\u0647 (Interrupt) \u0628\u0631\u0627\u06cc \u062a\u0648\u0642\u0641 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u062a\u0627\u0646 \u0627\u0631\u0633\u0627\u0644 \u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0633\u0631\u0648\u0631 HTTP \u0633\u0627\u062e\u062a\u06cc\u062f\u061b \u0627\u0645\u0627 \u0627\u0632 \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0648 \u0633\u0631\u0648\u0631 HTTP \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u06cc\u0627 \u0633\u0631\u0627\u0633\u0631\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627\u0639\u062b \u0628\u0627\u06af\u200c\u0647\u0627\u06cc\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0628\u0627\u0632\u0633\u0627\u0632\u06cc \u0622\u0646\u200c\u0647\u0627 \u0633\u062e\u062a \u0627\u0633\u062a\u061b \u0686\u0648\u0646 \u0686\u0646\u062f \u0628\u062e\u0634 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0631 \u0632\u0645\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u0646\u062f. \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0628\u0647 \u0648\u0636\u0639\u06cc\u062a \u0646\u0627\u062f\u0631\u0633\u062a\u06cc \u0645\u0646\u062c\u0631 \u0634\u0648\u062f\u060c \u0631\u062f\u06cc\u0627\u0628\u06cc \u0628\u0627\u06af \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0633\u062e\u062a \u0628\u0627\u0634\u062f\u061b \u0686\u0648\u0646 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0627\u06af \u0641\u0642\u0637 \u062f\u0631 \u0635\u0648\u0631\u062a \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0634\u062f\u0646 \u062a\u0648\u0627\u0628\u0639\u06cc \u062e\u0627\u0635 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u062e\u0627\u0635\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f. \u067e\u0633 \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644\u060c \u062f\u0631 \u0628\u062e\u0634 \u0628\u0639\u062f \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0632 \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631\u06cc \u06a9\u0647 \u062e\u0648\u062f\u062a\u0627\u0646 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u200c\u06a9\u0631\u062f\u0646 \u0647\u0646\u062f\u0644\u0631\u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc \u062f\u0631 \u0628\u062e\u0634 \u0642\u0628\u0644 \u0633\u0631\u0648\u0631 HTTP \u062e\u0648\u062f \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u062f\u060c \u0628\u0647 \u062a\u0627\u0628\u0639 ListenAndServe \u0628\u0631\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 http.Handler \u0645\u0642\u062f\u0627\u0631 nil \u067e\u0627\u0633 \u062f\u0627\u062f\u06cc\u062f\u061b \u0686\u0648\u0646 \u0627\u0632 \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0631\u062f\u06cc\u062f. \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 http.Handler \u06cc\u06a9 \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633 \u0627\u0633\u062a\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 Struct \u062e\u0648\u062f\u062a\u0627\u0646 \u0631\u0627 \u0633\u0627\u062e\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u062f. \u0627\u0645\u0627 \u06af\u0627\u0647\u06cc \u0641\u0642\u0637 \u0628\u0647 \u06cc\u06a9 http.Handler \u067e\u0627\u06cc\u0647 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u0633\u06cc\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u0634\u062e\u0635\u060c \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0648\u0627\u062d\u062f \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u062f\u061b \u0645\u0627\u0646\u0646\u062f \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636. \u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0632 http.ServeMux \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f\u061b \u06cc\u06a9 \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631 \u0648 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc http.Handler \u06a9\u0647 \u062a\u0648\u0633\u0637 \u067e\u06a9\u06cc\u062c net\/http \u0641\u0631\u0627\u0647\u0645 \u0634\u062f\u0647 \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u0627\u062e\u062a\u0627\u0631 http.ServeMux \u0628\u0647 \u0647\u0645\u0627\u0646 \u0631\u0648\u0634 \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0642\u0627\u0628\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u061b \u067e\u0633 \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0633\u062e\u0647 \u062e\u0648\u062f\u062a\u0627\u0646 \u0628\u0647\u200c\u062c\u0627\u06cc \u0646\u0633\u062e\u0647 \u0633\u0631\u0627\u0633\u0631\u06cc\u0650 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u060c \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0632\u06cc\u0627\u062f\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u062a\u0627\u0646 \u0644\u0627\u0632\u0645 \u0646\u06cc\u0633\u062a. \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 http.ServeMux\u060c \u0641\u0627\u06cc\u0644 main.go \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u062a\u0627\u0646 \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\nfunc main() {\n    mux := http.NewServeMux()\n    mux.HandleFunc(\"\/\", getRoot)\n    mux.HandleFunc(\"\/hello\", getHello)\n\n    err := http.ListenAndServe(\":3333\", mux)\n\n    ...\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u060c \u06cc\u06a9 http.ServeMux \u062c\u062f\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u0627\u0632\u0646\u062f\u0647 http.NewServeMux \u0633\u0627\u062e\u062a\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0645\u062a\u063a\u06cc\u0631 mux \u0627\u062e\u062a\u0635\u0627\u0635 \u062f\u0627\u062f\u06cc\u062f. \u0628\u0639\u062f \u0627\u0632 \u0622\u0646\u060c \u0641\u0642\u0637 \u0644\u0627\u0632\u0645 \u0628\u0648\u062f \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc http.HandleFunc \u0631\u0627 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631 mux \u0628\u0647\u200c\u062c\u0627\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u067e\u06a9\u06cc\u062c http \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc http.ListenAndServe \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 http.Handler \u0633\u0627\u062e\u062a\u0647\u200c\u0634\u062f\u0647 \u062e\u0648\u062f\u062a\u0627\u0646 (\u200fmux) \u0631\u0627 \u0628\u0647\u200c\u062c\u0627\u06cc \u0645\u0642\u062f\u0627\u0631 nil \u0628\u0647 \u0622\u0646 \u0628\u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0627 go run \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>go run main.go<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0645\u062b\u0644 \u062f\u0641\u0639\u0647 \u0642\u0628\u0644 \u0628\u0647 \u0627\u062c\u0631\u0627 \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f\u061b \u067e\u0633 \u0628\u0627\u06cc\u062f \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u0633\u0631\u0648\u0631 \u0631\u0627 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u06cc\u06af\u0631\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0627\u0628\u062a\u062f\u0627\u060c \u0628\u0627 curl \u062f\u0648\u0628\u0627\u0631\u0647 \u0645\u0633\u06cc\u0631 \/ \u0631\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl http:\/\/localhost:3333<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>This is my website!<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u062e\u0631\u0648\u062c\u06cc \u0645\u062b\u0644 \u0642\u0628\u0644 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u067e\u0633\u060c \u0647\u0645\u0627\u0646 \u062f\u0633\u062a\u0648\u0631 \u0642\u0628\u0644\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u0633\u06cc\u0631 \/hello \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl http:\/\/localhost:3333\/hello<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Hello, HTTP!<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u0645\u0633\u06cc\u0631 \u0647\u0645 \u0645\u062b\u0644 \u0642\u0628\u0644 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0627\u06af\u0631 \u0628\u0647 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0627\u0648\u0644\u06cc\u0647 \u0628\u0631\u06af\u0631\u062f\u06cc\u062f\u060c \u062e\u0631\u0648\u062c\u06cc \u0647\u0631 \u062f\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \/ \u0648 \/hello \u0631\u0627 \u0645\u062b\u0644 \u0642\u0628\u0644 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>got \/ request\ngot \/hello request<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0627\u06cc \u06a9\u0647 \u0631\u0648\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0631\u062f\u06cc\u062f \u0627\u0632 \u0646\u0638\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0647\u0645\u0627\u0646 \u0627\u0633\u062a\u061b \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u0627\u0632 http.Handler \u062e\u0648\u062f\u062a\u0627\u0646 \u0628\u0647\u200c\u062c\u0627\u06cc \u0647\u0646\u062f\u0644\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c CONTROL+C \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f \u062a\u0627 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ServeMux \u0648 \u0631\u0648\u062a\u0631\u0647\u0627\u06cc \u0634\u062e\u0635 \u062b\u0627\u0644\u062b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0628\u062e\u0634 \u0628\u0627\u0644\u0627\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0628\u0647\u200c\u062c\u0627\u06cc \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0627\u0632 http.ServeMux \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f. \u0646\u0648\u0639 ServeMux \u06a9\u0647 \u062a\u0648\u0633\u0637 \u067e\u06a9\u06cc\u062c net\/http \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0631\u0627\u0647\u06cc \u0633\u0627\u062f\u0647 \u0648 \u0645\u0624\u062b\u0631 \u0628\u0631\u0627\u06cc \u0647\u062f\u0627\u06cc\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc HTTP \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u062a\u0648\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0645\u0633\u06cc\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ServeMux \u0628\u0627 \u062a\u0637\u0628\u06cc\u0642 \u062f\u0627\u062f\u0646 \u0645\u0633\u06cc\u0631 URL \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648\u0631\u0648\u062f\u06cc \u0628\u0627 \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc (Pattern) \u062b\u0628\u062a\u200c\u0634\u062f\u0647 \u0648 \u0633\u067e\u0633 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0647\u0646\u062f\u0644\u0631 \u0645\u0631\u0628\u0648\u0637\u0647 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0686\u0648\u0646 \u0628\u062e\u0634\u06cc \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f Go \u0627\u0633\u062a\u060c \u0628\u0647\u200c\u0637\u0648\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u0627 \u0646\u0648\u0639 http.Server \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0627\u0636\u0627\u0641\u06cc \u0646\u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u062f. \u0647\u0645\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0642\u0648\u06cc \u0628\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9 \u0648 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc HTTP \u062f\u0631 Go \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c ServeMux \u062f\u0631 \u0637\u0631\u0627\u062d\u06cc \u062e\u0648\u062f \u0639\u0645\u062f\u0627\u064b \u0645\u06cc\u0646\u06cc\u0645\u0627\u0644 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u062a\u0637\u0628\u06cc\u0642 \u062f\u0642\u06cc\u0642 \u0645\u0633\u06cc\u0631 (Exact Path)<\/li>\n\n\n\n<li>\u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc \u0633\u0627\u062f\u0647 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u067e\u06cc\u0634\u0648\u0646\u062f (Prefix)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u060c \u0627\u06cc\u0646 \u0633\u0637\u062d \u0627\u0632 \u0642\u0627\u0628\u0644\u06cc\u062a \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a. \u0627\u0645\u0627 \u0628\u0627 \u0631\u0634\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0627 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f\u06cc\u200c\u0647\u0627\u06cc \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631\u06cc \u0631\u0648\u0628\u0631\u0648 \u0634\u0648\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0631\u0627\u06cc\u062c\u060c \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u062f\u0627\u06cc\u0646\u0627\u0645\u06cc\u06a9 \u06cc\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u06cc \u0627\u0633\u062a. URL\u06cc \u0645\u062b\u0644 \u0627\u06cc\u0646 \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/users\/42<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u0645\u0642\u062f\u0627\u0631 42 \u0646\u0634\u0627\u0646\u200c\u062f\u0647\u0646\u062f\u0647 \u0634\u0646\u0627\u0633\u0647 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u062a. \u0628\u0627 ServeMux\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u06cc\u0646 \u0646\u0648\u0639 \u0645\u0633\u06cc\u0631 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u062c\u0632\u06cc\u0647 \u062f\u0633\u062a\u06cc \u0645\u0633\u06cc\u0631 URL \u062f\u0627\u062e\u0644 \u0647\u0646\u062f\u0644\u0631 \u062f\u0627\u0631\u062f. \u0627\u06af\u0631\u0686\u0647 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0628\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062a\u0639\u062f\u0627\u062f \u0645\u0633\u06cc\u0631\u0647\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a\u0634 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0634\u0648\u0627\u0631 \u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0627\u06cc\u0646 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a\u200c\u0647\u0627\u060c \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0628\u0647 \u0633\u0631\u0627\u063a \u0631\u0648\u062a\u0631\u0647\u0627\u06cc \u0634\u062e\u0635 \u062b\u0627\u0644\u062b \u0645\u06cc\u200c\u0631\u0648\u0646\u062f \u06a9\u0647 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u062a\u0631\u06cc \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u06af\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u062d\u0628\u0648\u0628 \u062f\u0631 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 Go \u0634\u0627\u0645\u0644 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0627\u0633\u062a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>chi<\/li>\n\n\n\n<li>gorilla\/mux<\/li>\n\n\n\n<li>echo<\/li>\n\n\n\n<li>gin<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0631\u0648\u062a\u0631\u0647\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc ServeMux \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0648 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0632 \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u06cc (\u0645\u062b\u0644\u0627\u064b \u200e\/users\/{id}\u200e)<\/li>\n\n\n\n<li>\u06af\u0631\u0648\u0647\u200c\u0628\u0646\u062f\u06cc \u0648 \u062a\u0648 \u062f\u0631 \u062a\u0648 \u06a9\u0631\u062f\u0646 (Nesting) \u0645\u0633\u06cc\u0631\u0647\u0627<\/li>\n\n\n\n<li>\u0642\u0648\u0627\u0646\u06cc\u0646 \u062a\u0637\u0628\u06cc\u0642 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631<\/li>\n\n\n\n<li>\u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u06a9\u0645\u06a9\u06cc \u062f\u0627\u062e\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u062b\u0644\u0627\u064b\u060c \u06cc\u06a9 \u0631\u0648\u062a\u0631 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u062f \u0645\u0633\u06cc\u0631\u06cc \u0645\u062b\u0644 \u200e\/users\/{id}\u200e \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f \u0648 \u0645\u0642\u062f\u0627\u0631 id \u0631\u0627 \u0628\u0647\u200c\u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0632 URL \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u062c\u0632\u06cc\u0647 \u062f\u0633\u062a\u06cc \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0627\u062f\u0647 \u0648 \u0645\u0646\u0637\u0642 \u0647\u0646\u062f\u0644\u0631 \u0631\u0627 \u0631\u0648\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u062a\u0645\u0631\u06a9\u0632 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u0632\u06cc\u062a \u062f\u06cc\u06af\u0631 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0631\u0648\u062a\u0631\u0647\u0627\u06cc \u0634\u062e\u0635 \u062b\u0627\u0644\u062b\u060c \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0622\u0646\u200c\u0647\u0627 \u0627\u0632 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0627\u0633\u062a. \u062f\u0631\u062d\u0627\u0644\u06cc\u200c\u06a9\u0647 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633 http.Handler \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0634\u0648\u062f \u2014 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u062f\u06cc\u062f\u06cc\u062f \u2014 \u0631\u0648\u062a\u0631\u0647\u0627 \u0627\u063a\u0644\u0628 \u0631\u0627\u0647\u200c\u0647\u0627\u06cc convenient\u06cc \u0628\u0631\u0627\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0631\u0648\u06cc \u06af\u0631\u0648\u0647\u200c\u0647\u0627\u06cc\u06cc \u0627\u0632 \u0645\u0633\u06cc\u0631\u0647\u0627 \u06cc\u0627 \u06a9\u0644 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u0648\u062c\u0648\u062f \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u0647\u060c \u0628\u06cc\u0634\u062a\u0631 \u0631\u0648\u062a\u0631\u0647\u0627\u06cc \u0634\u062e\u0635 \u062b\u0627\u0644\u062b \u0637\u0648\u0631\u06cc \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u06a9\u0647 \u0628\u0627 \u067e\u06a9\u06cc\u062c \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f net\/http \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0634\u0648\u0646\u062f\u060c \u0646\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0622\u0646 \u0634\u0648\u0646\u062f. \u0622\u0646\u200c\u0647\u0627 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633 http.Handler \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u061b \u06cc\u0639\u0646\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u0645\u062b\u0644 ServeMux \u0628\u0627 http.ListenAndServe \u06cc\u0627 http.Server \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0631\u0648\u062a\u0631 \u0631\u0627 \u0628\u0647\u200c\u062a\u062f\u0631\u06cc\u062c \u0628\u067e\u0630\u06cc\u0631\u06cc\u062f. \u062f\u0631 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0645\u0648\u0627\u0631\u062f\u060c \u062c\u0627\u0628\u0647\u200c\u062c\u0627\u06cc\u06cc \u0627\u0632 ServeMux \u0628\u0647 \u06cc\u06a9 \u0631\u0648\u062a\u0631 \u0634\u062e\u0635 \u062b\u0627\u0644\u062b \u0641\u0642\u0637 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u062f\u0627\u0631\u062f \u0648 \u0628\u0642\u06cc\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0631\u0648\u0631 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0627\u0647\u062f\u0627\u0641 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0648 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u0633\u0627\u062f\u0647\u060c http.ServeM \u0647\u0645\u0686\u0646\u0627\u0646 \u0646\u0642\u0637\u0647 \u0634\u0631\u0648\u0639 \u0639\u0627\u0644\u06cc \u0627\u0633\u062a\u061b \u0686\u0648\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc \u0631\u0627 \u0628\u062f\u0648\u0646 \u0627\u0646\u062a\u0632\u0627\u0639 \u0627\u0636\u0627\u0641\u0647 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0627 \u0631\u0634\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u0634\u062f\u0646 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u06cc\u06a9 \u0631\u0648\u062a\u0631 \u0634\u062e\u0635 \u062b\u0627\u0644\u062b \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0631\u0627 \u0628\u0647\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06cc\u0627 \u062e\u06cc\u0631.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u062f\u0631\u06a9 \u0647\u0631 \u062f\u0648 \u0631\u0648\u06cc\u06a9\u0631\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0627\u0647\u200c\u062d\u0644 \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc\u200c\u0627\u06cc \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647\u062a\u0631\u06cc\u0646 \u062a\u0646\u0627\u0633\u0628 \u0631\u0627 \u0628\u0627 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u062f\u0627\u0631\u062f\u061b \u062f\u0631\u062d\u0627\u0644\u06cc\u200c\u06a9\u0647 \u0647\u0645\u0686\u0646\u0627\u0646 \u0631\u0648\u06cc \u0647\u0645\u0627\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645 \u067e\u0627\u06cc\u0647\u200c\u0627\u06cc \u06a9\u0647 \u0633\u0631\u0648\u0631 HTTP \u062f\u0631 Go \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0628\u0646\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0627\u062c\u0631\u0627\u06cc \u0686\u0646\u062f \u0633\u0631\u0648\u0631 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0647\u0645\u200c\u0632\u0645\u0627\u0646<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 http.Handler \u062e\u0648\u062f\u062a\u0627\u0646\u060c \u067e\u06a9\u06cc\u062c net\/http \u062f\u0631 Go \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0627\u0632 \u0633\u0631\u0648\u0631 HTTP\u0627\u06cc \u063a\u06cc\u0631 \u0627\u0632 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0647\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u06af\u0627\u0647\u06cc \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc \u0633\u0631\u0648\u0631 \u0631\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0686\u0646\u062f \u0633\u0631\u0648\u0631 HTTP \u0631\u0627 \u0647\u0645\u200c\u0632\u0645\u0627\u0646 \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0645\u062b\u0644\u0627\u064b\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u06cc\u06a9 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0639\u0645\u0648\u0645\u06cc \u0648 \u06cc\u06a9 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0627\u062f\u0645\u06cc\u0646 \u062e\u0635\u0648\u0635\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062c\u0631\u0627 \u0634\u0648\u0646\u062f. \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u0641\u0642\u0637 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0628\u0627 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0633\u062a\u06cc\u062f \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0648 \u0645\u0642\u062f\u0627\u0631 http.Server \u06a9\u0647 \u062a\u0648\u0633\u0637 \u067e\u06a9\u06cc\u062c net\/http \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u061b \u0628\u0631\u0627\u06cc \u0645\u0648\u0627\u0631\u062f\u06cc \u0645\u062b\u0644 \u0627\u06cc\u0646 \u2014 \u0648\u0642\u062a\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u06cc\u0627 \u0647\u0645\u200c\u0632\u0645\u0627\u0646 \u0628\u0647 \u0686\u0646\u062f \u0633\u0631\u0648\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0641\u0627\u06cc\u0644 main.go \u062e\u0648\u062f\u060c \u0686\u0646\u062f \u0633\u0631\u0648\u0631 HTTP \u0631\u0627 \u0628\u0627 http.Server \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u062a\u0648\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0647 context.Context \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 *http.Request \u0648\u0631\u0648\u062f\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0633\u0631\u0648\u0631\u06cc \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0632 \u0622\u0646 \u0622\u0645\u062f\u0647 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 context.Context \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u0631 \u0631\u0627 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0686\u0627\u067e \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0627\u06cc\u0644 main.go \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0634\u06a9\u0644 \u0646\u0634\u0627\u0646\u200c\u062f\u0627\u062f\u0647\u200c\u0634\u062f\u0647 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package main\n\nimport (\n    \/\/ \u062a\u0648\u062c\u0647: \u0627\u06cc\u0645\u067e\u0648\u0631\u062a \"os\" \u0631\u0627 \u0646\u06cc\u0632 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f.\n    \"context\"\n    \"errors\"\n    \"fmt\"\n    \"io\"\n    \"net\"\n    \"net\/http\"\n)\n\nconst keyServerAddr = \"serverAddr\"\n\nfunc getRoot(w http.ResponseWriter, r *http.Request) {\n    ctx := r.Context()\n\n    fmt.Printf(\"%s: got \/ request\\n\", ctx.Value(keyServerAddr))\n    io.WriteString(w, \"This is my website!\\n\")\n}\nfunc getHello(w http.ResponseWriter, r *http.Request) {\n    ctx := r.Context()\n\n    fmt.Printf(\"%s: got \/hello request\\n\", ctx.Value(keyServerAddr))\n    io.WriteString(w, \"Hello, HTTP!\\n\")\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u062f \u0628\u0627\u0644\u0627\u060c \u062f\u0633\u062a\u0648\u0631 \u0627\u06cc\u0645\u067e\u0648\u0631\u062a \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0628\u0631 \u0628\u06af\u06cc\u0631\u062f. \u0633\u067e\u0633\u060c \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u0631\u0634\u062a\u0647\u200c\u0627\u06cc \u062b\u0627\u0628\u062a (Const) \u0628\u0627 \u0646\u0627\u0645 keyServerAddr \u0633\u0627\u062e\u062a\u06cc\u062f \u062a\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06a9\u0644\u06cc\u062f \u0645\u0642\u062f\u0627\u0631 \u0622\u062f\u0631\u0633 \u0633\u0631\u0648\u0631 HTTP \u062f\u0631 context \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 http.Request \u0639\u0645\u0644 \u06a9\u0646\u062f. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0647\u0631 \u062f\u0648 \u062a\u0627\u0628\u0639 getRoot \u0648 getHello \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0628\u0647 \u0645\u0642\u062f\u0627\u0631 context.Context \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 http.Request \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f. \u0648\u0642\u062a\u06cc \u0645\u0642\u062f\u0627\u0631 \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0622\u062f\u0631\u0633 \u0633\u0631\u0648\u0631 HTTP \u0631\u0627 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc fmt.Printf \u0645\u06cc\u200c\u06af\u0646\u062c\u0627\u0646\u06cc\u062f \u062a\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f \u06a9\u062f\u0627\u0645\u200c\u06cc\u06a9 \u0627\u0632 \u062f\u0648 \u0633\u0631\u0648\u0631\u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a HTTP \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627\u060c \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062a\u0627\u0628\u0639 main \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u0648\u0644\u06cc\u0646\u0650 \u062f\u0648 \u0645\u0642\u062f\u0627\u0631 http.Server \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\nfunc main() {\n    ...\n    mux.HandleFunc(\"\/hello\", getHello)\n\n    ctx, cancelCtx := context.WithCancel(context.Background())\n    serverOne := &amp;http.Server{\n        Addr:    \":3333\",\n        Handler: mux,\n        BaseContext: func(l net.Listener) context.Context {\n            ctx = context.WithValue(ctx, keyServerAddr, l.Addr().String())\n            return ctx\n        },\n    }<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u06a9\u062f \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0634\u062f\u0647\u060c \u0627\u0648\u0644\u06cc\u0646 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u06a9\u0631\u062f\u06cc\u062f \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u062c\u062f\u06cc\u062f context.Context \u0628\u0627 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0642\u0627\u0628\u0644\u200c\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0644\u063a\u0648 \u06a9\u0627\u0646\u062a\u06a9\u0633\u062a (\u200fcancelCtx) \u0628\u0648\u062f. \u0633\u067e\u0633\u060c \u0645\u0642\u062f\u0627\u0631 serverOne \u0627\u0632 \u0646\u0648\u0639 http.Server \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u0642\u062f\u0627\u0631 \u062e\u06cc\u0644\u06cc \u0634\u0628\u06cc\u0647 \u0633\u0631\u0648\u0631 HTTP\u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0627 \u0627\u06cc\u0646 \u0644\u062d\u0638\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0631\u062f\u06cc\u062f\u061b \u0627\u0645\u0627 \u0628\u0647\u200c\u062c\u0627\u06cc \u067e\u0627\u0633 \u062f\u0627\u062f\u0646 \u0622\u062f\u0631\u0633 \u0648 \u0647\u0646\u062f\u0644\u0631 \u0628\u0647 \u062a\u0627\u0628\u0639 http.ListenAndServe\u060c \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 Addr \u0648 Handler \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 http.Server \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u06cc\u06a9 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u06cc\u06af\u0631\u060c \u0627\u0641\u0632\u0648\u062f\u0646 \u062a\u0627\u0628\u0639 BaseContext \u0627\u0633\u062a. BaseContext \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc\u06cc \u0627\u0632 context.Context \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0647\u0646\u06af\u0627\u0645 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u062a\u062f Context \u0627\u0632 *http.Request \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627\u060c \u0622\u062f\u0631\u0633\u06cc \u06a9\u0647 \u0633\u0631\u0648\u0631 \u0631\u0648\u06cc \u0622\u0646 \u06af\u0648\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f (\u200f()l.Addr().String) \u0631\u0627 \u0628\u0627 \u06a9\u0644\u06cc\u062f serverAddr \u0628\u0647 \u06a9\u0627\u0646\u062a\u06a9\u0633\u062a \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0633\u067e\u0633 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0686\u0627\u067e \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u067e\u0633\u060c \u0633\u0631\u0648\u0631 \u062f\u0648\u0645 \u062e\u0648\u062f \u06cc\u0639\u0646\u06cc serverTwo \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\nfunc main() {\n    ...\n    serverOne := &amp;http.Server {\n        ...\n    }\n\n    serverTwo := &amp;http.Server{\n        Addr:    \":4444\",\n        Handler: mux,\n        BaseContext: func(l net.Listener) context.Context {\n            ctx = context.WithValue(ctx, keyServerAddr, l.Addr().String())\n            return ctx\n        },\n    }<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0628\u0647 \u0647\u0645\u0627\u0646 \u0631\u0648\u0634 \u0633\u0631\u0648\u0631 \u0627\u0648\u0644 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a\u061b \u0628\u0647\u200c\u062c\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0647\u200c\u062c\u0627\u06cc \u0645\u0642\u062f\u0627\u0631 \u200e:3333 \u0628\u0631\u0627\u06cc \u0641\u06cc\u0644\u062f Addr\u060c \u0622\u0646 \u0631\u0627 \u0631\u0648\u06cc \u200e:4444 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u06cc\u062f. \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0631\u0648\u06cc \u067e\u0648\u0631\u062a 3333 \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u06af\u0648\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0633\u0631\u0648\u0631 \u062f\u0648\u0645 \u0631\u0648\u06cc \u067e\u0648\u0631\u062a 4444 \u06af\u0648\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0633\u0631\u0648\u0631 \u0627\u0648\u0644 \u06cc\u0639\u0646\u06cc serverOne \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u06af\u0648\u0631\u0648\u062a\u06cc\u0646 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\nfunc main() {\n    ...\n    serverTwo := &amp;http.Server {\n        ...\n    }\n\n    go func() {\n        err := serverOne.ListenAndServe()\n        if errors.Is(err, http.ErrServerClosed) {\n            fmt.Printf(\"server one closed\\n\")\n        } else if err != nil {\n            fmt.Printf(\"error listening for server one: %s\\n\", err)\n        }\n        cancelCtx()\n    }()<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0627\u062e\u0644 \u06af\u0648\u0631\u0648\u062a\u06cc\u0646\u060c \u0633\u0631\u0648\u0631 \u0631\u0627 \u0628\u0627 ListenAndServe \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u061b \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0627\u062f\u06cc\u062f\u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0627\u0631\u0627\u0626\u0647 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0628\u0647 \u062a\u0627\u0628\u0639 \u0645\u062b\u0644 http.ListenAndServe \u0646\u06cc\u0633\u062a\u061b \u0686\u0648\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 http.Server \u0627\u0632 \u0642\u0628\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f. \u0633\u067e\u0633\u060c \u0647\u0645\u0627\u0646 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627\u06cc \u0642\u0628\u0644 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u06cc\u062f. \u062f\u0631 \u0627\u0646\u062a\u0647\u0627\u06cc \u062a\u0627\u0628\u0639\u060c cancelCtx \u0631\u0627 \u0628\u0631\u0627\u06cc \u0644\u063a\u0648 \u06a9\u0627\u0646\u062a\u06a9\u0633\u062a\u06cc \u06a9\u0647 \u0628\u0647 \u0647\u0646\u062f\u0644\u0631\u0647\u0627\u06cc HTTP \u0648 \u0647\u0631 \u062f\u0648 \u062a\u0627\u0628\u0639 BaseContext \u0633\u0631\u0648\u0631\u0647\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u0627\u06af\u0631 \u0633\u0631\u0648\u0631 \u0628\u0647 \u062f\u0644\u06cc\u0644\u06cc \u067e\u0627\u06cc\u0627\u0646 \u06cc\u0627\u0628\u062f\u060c \u06a9\u0627\u0646\u062a\u06a9\u0633\u062a \u0647\u0645 \u067e\u0627\u06cc\u0627\u0646 \u0645\u06cc\u200c\u06cc\u0627\u0628\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0633\u0631\u0648\u0631 \u062f\u0648\u0645 \u0631\u0627 \u0647\u0645 \u062f\u0631 \u06cc\u06a9 \u06af\u0648\u0631\u0648\u062a\u06cc\u0646 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\nfunc main() {\n    ...\n    go func() {\n        ...\n    }()\n    go func() {\n        err := serverTwo.ListenAndServe()\n        if errors.Is(err, http.ErrServerClosed) {\n            fmt.Printf(\"server two closed\\n\")\n        } else if err != nil {\n            fmt.Printf(\"error listening for server two: %s\\n\", err)\n        }\n        cancelCtx()\n    }()\n\n    &lt;-ctx.Done()\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u06af\u0648\u0631\u0648\u062a\u06cc\u0646 \u0627\u0632 \u0646\u0638\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0647\u0645\u0627\u0646 \u06af\u0648\u0631\u0648\u062a\u06cc\u0646 \u0627\u0648\u0644 \u0627\u0633\u062a\u061b \u0641\u0642\u0637 \u0628\u0647\u200c\u062c\u0627\u06cc serverOne\u060c \u0633\u0631\u0648\u0631 serverTwo \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0634\u0627\u0645\u0644 \u0627\u0646\u062a\u0647\u0627\u06cc \u062a\u0627\u0628\u0639 main \u0647\u0645 \u0647\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0642\u0628\u0644 \u0627\u0632 \u0628\u0627\u0632\u06af\u0634\u062a \u0627\u0632 \u062a\u0627\u0628\u0639 main\u060c \u0627\u0632 \u06a9\u0627\u0646\u0627\u0644 ctx.Done \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u06af\u0648\u0631\u0648\u062a\u06cc\u0646\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u067e\u0627\u06cc\u0627\u0646 \u06cc\u0627\u0628\u062f \u0648 cancelCtx \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0634\u0648\u062f\u060c \u0628\u0647 \u0627\u062c\u0631\u0627 \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u062f. \u0648\u0642\u062a\u06cc \u06a9\u0627\u0646\u062a\u06a9\u0633\u062a \u067e\u0627\u06cc\u0627\u0646 \u06cc\u0627\u0628\u062f\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u062e\u0627\u0631\u062c \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc \u06a9\u0627\u0631\u062a\u0627\u0646 \u062a\u0645\u0627\u0645 \u0634\u062f\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 go run \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>go run main.go<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0647 \u0627\u062c\u0631\u0627 \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f\u061b \u067e\u0633 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u0648\u0645 \u062e\u0648\u062f\u060c \u062f\u0633\u062a\u0648\u0631\u0627\u062a curl \u0631\u0627 \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \/ \u0648 \/hello \u0627\u0632 \u0633\u0631\u0648\u0631\u06cc \u06a9\u0647 \u0631\u0648\u06cc 3333 \u06af\u0648\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\u061b \u0647\u0645\u0627\u0646\u0646\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0642\u0628\u0644\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl http:\/\/localhost:3333\ncurl http:\/\/localhost:3333\/hello<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>This is my website!\nHello, HTTP!<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u062e\u0631\u0648\u062c\u06cc\u060c \u0647\u0645\u0627\u0646 \u067e\u0627\u0633\u062e\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u062f\u06cc\u062f\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627\u060c \u0647\u0645\u0627\u0646 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\u061b \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u0627\u0632 \u067e\u0648\u0631\u062a 4444 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0627 serverTwo \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0631\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl http:\/\/localhost:4444\ncurl http:\/\/localhost:4444\/hello<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>This is my website!\nHello, HTTP!<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0631\u0627 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u067e\u0648\u0631\u062a 3333 \u06a9\u0647 \u062a\u0648\u0633\u0637 serverOne \u0633\u0631\u0648 \u0645\u06cc\u200c\u0634\u062f\u0646\u062f \u062f\u06cc\u062f\u06cc\u062f\u060c \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0628\u0647 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0627\u0648\u0644\u06cc\u0647\u200c\u0627\u06cc \u06a9\u0647 \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u062f\u0631 \u0622\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627\u0633\u062a \u0646\u06af\u0627\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;::]:3333: got \/ request\n&#91;::]:3333: got \/hello request\n&#91;::]:4444: got \/ request\n&#91;::]:4444: got \/hello request<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0634\u0628\u06cc\u0647 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u062f\u06cc\u062f\u06cc\u062f\u061b \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u0633\u0631\u0648\u0631\u06cc \u06a9\u0647 \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0627\u0633\u062e \u062f\u0627\u062f\u0647 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f. \u062f\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0648\u0644 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0627\u0632 \u0633\u0631\u0648\u0631\u06cc \u0622\u0645\u062f\u0647\u200c\u0627\u0646\u062f \u06a9\u0647 \u0631\u0648\u06cc \u067e\u0648\u0631\u062a 3333 \u06af\u0648\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f (serverOne) \u0648 \u062f\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062f\u0648\u0645 \u0627\u0632 \u0633\u0631\u0648\u0631\u06cc \u0622\u0645\u062f\u0647\u200c\u0627\u0646\u062f \u06a9\u0647 \u0631\u0648\u06cc \u067e\u0648\u0631\u062a 4444 \u06af\u0648\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f (serverTwo). \u0627\u06cc\u0646 \u0647\u0645\u0627\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0627\u0632 \u0645\u0642\u062f\u0627\u0631 serverAddr \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 BaseContext \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0633\u062a\u0647 \u0628\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 IPv6 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u06cc\u0627 \u0646\u0647\u060c \u062e\u0631\u0648\u062c\u06cc \u0634\u0645\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u06a9\u0645\u06cc \u0628\u0627 \u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u0644\u0627 \u0645\u062a\u0641\u0627\u0648\u062a \u0628\u0627\u0634\u062f. \u0627\u06af\u0631 \u0628\u0627\u0634\u062f\u060c \u0647\u0645\u0627\u0646 \u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u0644\u0627 \u0631\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f. \u0627\u06af\u0631 \u0646\u0628\u0627\u0634\u062f\u060c \u0628\u0647\u200c\u062c\u0627\u06cc [::] \u0645\u0642\u062f\u0627\u0631 0.0.0.0 \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f. \u062f\u0644\u06cc\u0644 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0634\u0645\u0627 \u062f\u0631 \u0635\u0648\u0631\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u200c\u0634\u062f\u0646\u060c \u0627\u0632 \u0637\u0631\u06cc\u0642 IPv6 \u0628\u0627 \u062e\u0648\u062f\u0634 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 [::] \u0646\u0645\u0627\u062f IPv6 \u0628\u0631\u0627\u06cc 0.0.0.0 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc \u06a9\u0627\u0631\u062a\u0627\u0646 \u062a\u0645\u0627\u0645 \u0634\u062f\u060c \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0632 CONTROL+C \u0628\u0631\u0627\u06cc \u062a\u0648\u0642\u0641 \u0633\u0631\u0648\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0633\u0631\u0648\u0631 HTTP \u062c\u062f\u06cc\u062f \u0628\u0627 http.HandleFunc \u0648 http.ListenAndServe \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0633\u0627\u062e\u062a\u06cc\u062f. \u0633\u067e\u0633\u060c \u0622\u0646 \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0627\u0632 http.ServeMux \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 http.Handler \u0628\u0647\u200c\u062c\u0627\u06cc \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0628\u0627 http.Server \u0686\u0646\u062f \u0633\u0631\u0648\u0631 HTTP \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631\u062d\u0627\u0644\u06cc\u200c\u06a9\u0647 \u0627\u0644\u0627\u0646 \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u062f\u0627\u0631\u06cc\u062f\u060c \u062a\u0639\u0627\u0645\u0644\u06cc\u0650 \u0632\u06cc\u0627\u062f\u06cc \u0646\u062f\u0627\u0631\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u06cc \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0645\u0627 \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0627 \u0622\u0646 \u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u0627\u06cc\u0646 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f. \u067e\u0631\u0648\u062a\u06a9\u0644 HTTP \u0631\u0627\u0647\u200c\u0647\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0627 \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u0645\u0633\u06cc\u0631\u0647\u0627 \u062f\u0631 \u0628\u0631 \u062f\u0627\u0631\u062f. \u062f\u0631 \u0628\u062e\u0634 \u0628\u0639\u062f\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0632 \u0627\u0648\u0644\u06cc\u0646 \u0622\u0646\u200c\u0647\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0646\u062f: \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u0631\u0634\u062f \u0633\u0631\u0648\u0631 HTTP \u0634\u0645\u0627\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u062a\u0648\u062c\u0647 \u0634\u0648\u06cc\u062f \u0686\u0646\u062f \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u0631\u0641\u062a\u0627\u0631 \u0645\u0634\u062a\u0631\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0645\u062b\u0644\u0627\u064b\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u062c\u0632\u0626\u06cc\u0627\u062a \u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0644\u0627\u06af \u06a9\u0646\u06cc\u062f\u060c \u0628\u0647 \u0647\u0631 \u067e\u0627\u0633\u062e \u0647\u062f\u0631 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0642\u0628\u0644 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0647\u0646\u062f\u0644\u0631\u060c \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f. \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0645\u0646\u0637\u0642 \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0627\u062e\u0644 \u0647\u0631 \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u06a9\u062f \u0634\u0645\u0627 \u062e\u06cc\u0644\u06cc \u0632\u0648\u062f \u062a\u06a9\u0631\u0627\u0631\u06cc \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc\u200c\u0627\u0634 \u0633\u062e\u062a\u200c\u062a\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644\u060c \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc Go \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0632 \u0627\u0644\u06af\u0648\u06cc\u06cc \u0628\u0647 \u0646\u0627\u0645 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 (Middleware) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u06cc\u06a9 \u0647\u0646\u062f\u0644\u0631 \u0645\u0648\u062c\u0648\u062f \u0631\u0627 \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0636\u0627\u0641\u0647 \u0628\u067e\u0648\u0634\u0627\u0646\u06cc\u062f \u062a\u0627 \u0645\u0646\u0637\u0642 \u0645\u0634\u062a\u0631\u06a9 \u0628\u0647\u200c\u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0631\u0627\u06cc \u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u062c\u0631\u0627 \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u062f\u0631 Go \u062e\u0648\u0628 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0686\u0648\u0646 \u0647\u0645\u0647 \u0647\u0646\u062f\u0644\u0631\u0647\u0627\u06cc HTTP \u0627\u0632 \u0647\u0645\u0627\u0646 \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633 http.Handler \u067e\u06cc\u0631\u0648\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0645\u0639\u0631\u0641\u06cc \u0634\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0633\u0627\u062e\u062a \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 Go\u060c \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062a\u0627\u0628\u0639\u06cc \u0646\u0648\u0634\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u06cc\u06a9 http.Handler \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u0648 \u06cc\u06a9 http.Handler \u062f\u06cc\u06af\u0631 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f. \u0647\u0646\u062f\u0644\u0631 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647\u200c\u0634\u062f\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u06a9\u062f\u06cc \u0631\u0627 \u0642\u0628\u0644 \u0648 \u0628\u0639\u062f \u0627\u0632 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0647\u0646\u062f\u0644\u0631 \u0627\u0635\u0644\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f \u0648 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u062f \u0631\u0641\u062a\u0627\u0631 \u0627\u0636\u0627\u0641\u06cc\u200c\u0627\u06cc \u0631\u0627 \u062f\u0631 \u0686\u0631\u062e\u0647 \u062d\u06cc\u0627\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639\u060c \u0641\u0627\u06cc\u0644 main.go \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0647 \u0648 \u062a\u0627\u0628\u0639 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>func loggingMiddleware(next http.Handler) http.Handler {\n    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n        fmt.Printf(\"started %s %s\\n\", r.Method, r.URL.Path)\n\n        next.ServeHTTP(w, r)\n\n        fmt.Printf(\"completed %s %s\\n\", r.Method, r.URL.Path)\n    })\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u062a\u0627\u0628\u0639\u060c \u0647\u0646\u062f\u0644\u0631 \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u2014 \u06a9\u0647 \u0628\u0647 \u0622\u0646 next \u0627\u0634\u0627\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u2014 \u0645\u06cc\u200c\u067e\u0648\u0634\u0627\u0646\u062f \u0648 \u0647\u0646\u062f\u0644\u0631 \u062c\u062f\u06cc\u062f\u06cc \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f. \u0648\u0642\u062a\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0627\u0628\u062a\u062f\u0627 \u067e\u06cc\u0627\u0645\u06cc \u0686\u0627\u067e \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0646\u0634\u0627\u0646 \u062f\u0647\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0634\u0631\u0648\u0639 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0633\u067e\u0633 \u200enext.ServeHTTP(w, r)\u200e \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0642\u0627\u0644 \u06a9\u0646\u062a\u0631\u0644 \u0628\u0647 \u0647\u0646\u062f\u0644\u0631 \u0627\u0635\u0644\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u067e\u0633 \u0627\u0632 \u067e\u0627\u06cc\u0627\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0648\u0633\u0637 \u0647\u0646\u062f\u0644\u0631\u060c \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u067e\u06cc\u0627\u0645 \u062f\u06cc\u06af\u0631\u06cc \u0686\u0627\u067e \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0646\u0634\u0627\u0646 \u062f\u0647\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627\u0645\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc next.ServeHTTP \u0647\u0645\u0627\u0646 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062f\u0631 \u0632\u0646\u062c\u06cc\u0631\u0647 \u0647\u0646\u062f\u0644\u0631\u0647\u0627 \u0627\u062f\u0627\u0645\u0647 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f. \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u062d\u0630\u0641 \u0645\u06cc\u200c\u0634\u062f\u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0631\u06af\u0632 \u0628\u0647 \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0634\u0645\u0627 \u0646\u0645\u06cc\u200c\u0631\u0633\u06cc\u062f \u0648 \u0647\u06cc\u0686 \u067e\u0627\u0633\u062e\u06cc \u062a\u0648\u0644\u06cc\u062f \u0646\u0645\u06cc\u200c\u0634\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc \u062a\u0627\u0628\u0639 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0627 \u067e\u0648\u0634\u0627\u0646\u062f\u0646 \u0631\u0648\u06cc \u0647\u0646\u062f\u0644\u0631 \u06cc\u0627 \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0645\u0648\u062c\u0648\u062f \u062e\u0648\u062f\u060c \u0628\u0647 \u0633\u0631\u0648\u0631\u062a\u0627\u0646 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f. \u0627\u06af\u0631 \u0627\u0632 http.ServeMux \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u062a\u0627\u0628\u0639 main \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>func main() {\n    mux := http.NewServeMux()\n    mux.HandleFunc(\"\/\", getRoot)\n    mux.HandleFunc(\"\/hello\", getHello) \n\n    loggedMux := loggingMiddleware(mux)\n\n    err := http.ListenAndServe(\":3333\", loggedMux)\n    if err != nil {\n        fmt.Printf(\"error starting server: %s\\n\", err)\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u062a\u063a\u06cc\u0631 mux \u0647\u0645\u0686\u0646\u0627\u0646 \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u062a\u0648\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0645\u0646\u0627\u0633\u0628 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0647\u200c\u062c\u0627\u06cc \u067e\u0627\u0633 \u062f\u0627\u062f\u0646 \u0645\u0633\u062a\u0642\u06cc\u0645 mux \u0628\u0647 http.ListenAndServe\u060c \u0622\u0646 \u0628\u0627 loggingMiddleware \u067e\u0648\u0634\u0627\u0646\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06cc\u0639\u0646\u06cc \u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0642\u0628\u0644 \u0627\u0632 \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u062a\u0648\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631\u06cc \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0627\u0632 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0627 curl \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0628\u0641\u0631\u0633\u062a\u06cc\u062f\u060c \u062e\u0631\u0648\u062c\u06cc \u0627\u0636\u0627\u0641\u0647\u200c\u0627\u06cc \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0632\u0645\u0627\u0646 \u0634\u0631\u0648\u0639 \u0648 \u067e\u0627\u06cc\u0627\u0646 \u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u062a\u0623\u06cc\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0628\u0631\u0627\u06cc \u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648\u0631\u0648\u062f\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0632\u0646\u062c\u06cc\u0631\u0647\u200c\u06a9\u0631\u062f\u0646 \u0686\u0646\u062f \u062a\u0627\u0628\u0639 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc \u0686\u0646\u062f \u062a\u0627\u0628\u0639 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0631\u0627 \u0628\u0627 \u0647\u0645 \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0645\u0641\u06cc\u062f\u062a\u0631 \u0647\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0647\u0631 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0628\u067e\u0648\u0634\u0627\u0646\u062f \u0648 \u0632\u0646\u062c\u06cc\u0631\u0647\u200c\u0627\u06cc \u0627\u0632 \u0645\u0631\u0627\u062d\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u0628\u0633\u0627\u0632\u062f. \u0645\u062b\u0644\u0627\u064b\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0644\u0627\u06af\u200c\u06af\u06cc\u0631\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u060c \u06cc\u06a9 \u0647\u062f\u0631 \u067e\u0627\u0633\u062e \u0633\u0641\u0627\u0631\u0634\u06cc \u0647\u0645 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0627\u0628\u0639 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u062f\u06cc\u06af\u0631\u06cc \u0645\u062b\u0644 \u0627\u06cc\u0646 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>func headerMiddleware(next http.Handler) http.Handler {\n    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n        w.Header().Set(\"X-App-Version\", \"1.0\")\n\n        next.ServeHTTP(w, r)\n    })\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0642\u0628\u0644 \u0627\u0632 \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0647 \u0647\u0646\u062f\u0644\u0631 \u0628\u0639\u062f\u06cc\u060c \u06cc\u06a9 \u0647\u062f\u0631 \u067e\u0627\u0633\u062e \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u0639\u0645\u0627\u0644 \u0647\u0631 \u062f\u0648 \u062a\u0627\u0628\u0639 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u200c\u062a\u0631\u062a\u06cc\u0628 \u062f\u0648\u0631 \u0647\u0646\u062f\u0644\u0631 \u062e\u0648\u062f \u0628\u067e\u06cc\u0686\u0627\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>handler := loggingMiddleware(headerMiddleware(mux))\nhttp.ListenAndServe(\":3333\", handler)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0686\u06cc\u062f\u0645\u0627\u0646\u060c \u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0628\u062a\u062f\u0627 \u0627\u0632 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0644\u0627\u06af\u200c\u06af\u06cc\u0631\u06cc \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0633\u067e\u0633 \u0627\u0632 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0647\u062f\u0631 \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0628\u0647 \u0647\u0646\u062f\u0644\u0631\u0650 \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0645\u0633\u06cc\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0634\u062f\u0647 \u0645\u06cc\u200c\u0631\u0633\u062f. \u0648\u0642\u062a\u06cc \u0647\u0646\u062f\u0644\u0631 \u06a9\u0627\u0631\u0634 \u062a\u0645\u0627\u0645 \u0634\u062f\u060c \u06a9\u0646\u062a\u0631\u0644 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0645\u0639\u06a9\u0648\u0633 \u0627\u0632 \u0645\u06cc\u0627\u0646 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631\u0647\u0627 \u0628\u0627\u0632\u0645\u06cc\u200c\u06af\u0631\u062f\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0644\u0627\u06cc\u0647\u200c\u0627\u06cc \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0631\u0641\u062a\u0627\u0631 \u0645\u0634\u062a\u0631\u06a9\u06cc \u0631\u0627 \u0628\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0647\u0631 \u0647\u0646\u062f\u0644\u0631 \u0631\u0627 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f. \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u062f\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc Go \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0631\u0627\u06cc \u0647\u0646\u062f\u0644 \u06a9\u0631\u062f\u0646 \u0645\u0633\u0627\u0626\u0644\u06cc \u0645\u0627\u0646\u0646\u062f \u0644\u0627\u06af\u200c\u06af\u06cc\u0631\u06cc\u060c \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0686\u0648\u0646 \u0631\u0648\u06cc \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633 http.Handler \u0628\u0646\u0627 \u0634\u062f\u0647\u060c \u0647\u0645 \u0628\u0627 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0648 \u0647\u0645 \u0628\u0627 \u0631\u0648\u062a\u0631\u0647\u0627\u06cc \u0634\u062e\u0635 \u062b\u0627\u0644\u062b \u0628\u0647\u200c\u0637\u0648\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u0633\u0627\u062e\u062a\u0627\u0631\u062f\u0647\u06cc \u0628\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644\u060c \u062a\u0648\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0634\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0631\u0648\u06cc \u062a\u0648\u0644\u06cc\u062f \u067e\u0627\u0633\u062e\u200c\u0647\u0627 \u0645\u062a\u0645\u0631\u06a9\u0632 \u0628\u0645\u0627\u0646\u0646\u062f\u061b \u062f\u0631\u062d\u0627\u0644\u06cc\u200c\u06a9\u0647 \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0645\u0646\u0637\u0642 \u0642\u0627\u0628\u0644\u200c\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f\u06cc \u0631\u0627 \u06a9\u0647 \u0631\u0648\u06cc \u0686\u0646\u062f \u0645\u0633\u06cc\u0631 \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0628\u0631\u0631\u0633\u06cc \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u06cc\u06a9\u06cc \u0627\u0632 \u0631\u0627\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0631\u0648\u06cc \u067e\u0627\u0633\u062e HTTP\u0627\u06cc \u06a9\u0647 \u0627\u0632 \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0623\u062b\u06cc\u0631 \u0628\u06af\u0630\u0627\u0631\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0627\u0633\u062a. \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0627\u06cc \u0627\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0627\u0646\u062a\u0647\u0627\u06cc URL \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0627 \u06cc\u06a9 \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631 ? \u0634\u0631\u0648\u0639 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0627\u0636\u0627\u0641\u06cc \u0628\u0627 &amp; \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u062c\u062f\u0627\u06a9\u0646\u0646\u062f\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u0641\u06cc\u0644\u062a\u0631 \u06cc\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc\u200c\u06a9\u0631\u062f\u0646 \u0646\u062a\u0627\u06cc\u062c\u06cc \u06a9\u0647 \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u067e\u0627\u0633\u062e \u0645\u06cc\u200c\u0641\u0631\u0633\u062a\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0645\u062b\u0644\u0627\u064b\u060c \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0632 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 results \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f \u062a\u0627 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u062f \u0686\u06cc\u0632\u06cc \u0645\u062b\u0644 results=10 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u062f \u0648 \u0628\u06af\u0648\u06cc\u062f \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u062f \u06f1\u06f0 \u0622\u06cc\u062a\u0645 \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u0646\u062a\u0627\u06cc\u062c\u0634 \u0628\u0628\u06cc\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 getRoot \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0627 \u0645\u0642\u062f\u0627\u0631 *http.Request \u062e\u0648\u062f\u060c \u0628\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u0686\u0627\u067e \u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0628\u062a\u062f\u0627\u060c \u0641\u0627\u06cc\u0644 main.go \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0647 \u0648 \u062a\u0627\u0628\u0639 getRoot \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0627 \u0645\u062a\u062f r.URL.Query \u0628\u0647 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f. \u0633\u067e\u0633\u060c \u0645\u062a\u062f main \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 serverTwo \u0648 \u062a\u0645\u0627\u0645 \u06a9\u062f\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0622\u0646 \u062d\u0630\u0641 \u0634\u0648\u0646\u062f\u061b \u0686\u0648\u0646 \u062f\u06cc\u06af\u0631 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u0646\u062f\u0627\u0631\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\nfunc getRoot(w http.ResponseWriter, r *http.Request) {\n    ctx := r.Context()\n\n    hasFirst := r.URL.Query().Has(\"first\")\n    first := r.URL.Query().Get(\"first\")\n    hasSecond := r.URL.Query().Has(\"second\")\n    second := r.URL.Query().Get(\"second\")\n\n    fmt.Printf(\"%s: got \/ request. first(%t)=%s, second(%t)=%s\\n\",\n        ctx.Value(keyServerAddr),\n        hasFirst, first,\n        hasSecond, second)\n    io.WriteString(w, \"This is my website!\\n\")\n}\n...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u062a\u0627\u0628\u0639 getRoot\u060c \u0627\u0632 \u0641\u06cc\u0644\u062f r.URL \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 *http.Request \u062f\u0631 getRoot \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u0634\u062e\u0635\u0627\u062a URL \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0634\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u0633\u067e\u0633 \u0627\u0632 \u0645\u062a\u062f Query \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0641\u06cc\u0644\u062f r.URL \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u0648\u0642\u062a\u06cc \u0628\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0631\u06cc\u062f\u060c \u062f\u0648 \u0645\u062a\u062f \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0645\u062a\u062f Has \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 bool \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f \u06a9\u0647 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0645\u0642\u062f\u0627\u0631\u06cc \u0628\u0627 \u06a9\u0644\u06cc\u062f \u062f\u0627\u062f\u0647\u200c\u0634\u062f\u0647 \u2014 \u0645\u0627\u0646\u0646\u062f first \u2014 \u062f\u0627\u0631\u062f \u06cc\u0627 \u0646\u0647. \u0633\u067e\u0633\u060c \u0645\u062a\u062f Get \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u0628\u0627 \u0645\u0642\u062f\u0627\u0631\u0650 \u06a9\u0644\u06cc\u062f \u062f\u0627\u062f\u0647\u200c\u0634\u062f\u0647 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u062a\u0626\u0648\u0631\u06cc\u060c \u0647\u0645\u06cc\u0634\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0633\u062a\u06cc\u062f \u0627\u0632 \u0645\u062a\u062f Get \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u061b \u0686\u0648\u0646 \u0647\u0645\u06cc\u0634\u0647 \u06cc\u0627 \u0645\u0642\u062f\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u06a9\u0644\u06cc\u062f \u062f\u0627\u062f\u0647\u200c\u0634\u062f\u0647 \u0631\u0627 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f \u06cc\u0627 \u062f\u0631 \u0635\u0648\u0631\u062a \u0648\u062c\u0648\u062f\u0646\u062f\u0627\u0634\u062a\u0646 \u06a9\u0644\u06cc\u062f\u060c \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062e\u0627\u0644\u06cc. \u0628\u0631\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a \u2014 \u0627\u0645\u0627 \u062f\u0631 \u0628\u0631\u062e\u06cc \u0645\u0648\u0627\u0631\u062f \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u062a\u0641\u0627\u0648\u062a \u0628\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631\u06cc \u06a9\u0647 \u0645\u0642\u062f\u0627\u0631 \u062e\u0627\u0644\u06cc \u0627\u0631\u0627\u0626\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u06a9\u0627\u0631\u0628\u0631\u06cc \u06a9\u0647 \u0627\u0635\u0644\u0627\u064b \u0645\u0642\u062f\u0627\u0631\u06cc \u0627\u0631\u0627\u0626\u0647 \u0646\u06a9\u0631\u062f\u0647 \u0631\u0627 \u0628\u062f\u0627\u0646\u06cc\u062f. \u0628\u0633\u062a\u0647 \u0628\u0647 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0645\u0627\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u062f\u0627\u0646\u06cc\u062f \u06a9\u0627\u0631\u0628\u0631 \u0645\u0642\u062f\u0627\u0631 \u0641\u06cc\u0644\u062a\u0631\u0650 \u062e\u0627\u0644\u06cc \u062f\u0627\u062f\u0647 \u0627\u0633\u062a \u06cc\u0627 \u0627\u0635\u0644\u0627\u064b \u0641\u06cc\u0644\u062a\u0631\u06cc \u0646\u062f\u0627\u062f\u0647 \u0627\u0633\u062a. \u0627\u06af\u0631 \u0645\u0642\u062f\u0627\u0631 \u0641\u06cc\u0644\u062a\u0631\u0650 \u062e\u0627\u0644\u06cc \u062f\u0627\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u00ab\u0647\u06cc\u0686 \u0686\u06cc\u0632\u06cc \u0628\u0647 \u0645\u0646 \u0646\u0634\u0627\u0646 \u0646\u062f\u0647\u00bb \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f\u061b \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0646\u062f\u0627\u062f\u0646 \u0641\u06cc\u0644\u062a\u0631 \u06cc\u0639\u0646\u06cc \u00ab\u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u0628\u0647 \u0645\u0646 \u0646\u0634\u0627\u0646 \u0628\u062f\u0647\u00bb. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Has \u0648 Get \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0641\u0627\u0648\u062a \u0627\u06cc\u0646 \u062f\u0648 \u062d\u0627\u0644\u062a \u0631\u0627 \u062a\u0634\u062e\u06cc\u0635 \u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u062a\u0627\u0628\u0639 getRoot \u062e\u0648\u062f\u060c \u062e\u0631\u0648\u062c\u06cc \u0631\u0627 \u0647\u0645 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0645\u0642\u0627\u062f\u06cc\u0631 Has \u0648 Get \u0628\u0631\u0627\u06cc \u0647\u0631 \u062f\u0648 \u0645\u0642\u062f\u0627\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc\u0650 first \u0648 second \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627\u060c \u062a\u0627\u0628\u0639 main \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0632 \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\nfunc main() {\n    ...\n    mux.HandleFunc(\"\/hello\", getHello)\n\n    ctx := context.Background()\n    server := &amp;http.Server{\n        Addr:    \":3333\",\n        Handler: mux,\n        BaseContext: func(l net.Listener) context.Context {\n            ctx = context.WithValue(ctx, keyServerAddr, l.Addr().String())\n            return ctx\n        },\n    }\n\n    err := server.ListenAndServe()\n    if errors.Is(err, http.ErrServerClosed) {\n        fmt.Printf(\"server closed\\n\")\n    } else if err != nil {\n        fmt.Printf(\"error listening for server: %s\\n\", err)\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u062a\u0627\u0628\u0639 main\u060c \u0627\u0631\u062c\u0627\u0639\u0627\u062a \u0628\u0647 serverTwo \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0631\u062f\u06cc\u062f \u0648 \u0627\u062c\u0631\u0627\u06cc \u0633\u0631\u0648\u0631 (\u06a9\u0647 \u0642\u0628\u0644\u0627\u064b serverOne \u0628\u0648\u062f) \u0631\u0627 \u0627\u0632 \u06cc\u06a9 \u06af\u0648\u0631\u0648\u062a\u06cc\u0646 \u0628\u0647 \u062f\u0627\u062e\u0644 \u062a\u0627\u0628\u0639 main \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062f\u06cc\u062f\u061b \u0645\u0634\u0627\u0628\u0647 \u0631\u0648\u0634\u06cc \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b http.ListenAndServe \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0631\u062f\u06cc\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0633\u062a\u06cc\u062f \u0628\u0647\u200c\u062c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0642\u062f\u0627\u0631 http.Server\u060c \u0622\u0646 \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0647 http.ListenAndServe \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f\u061b \u0686\u0648\u0646 \u062f\u0648\u0628\u0627\u0631\u0647 \u0641\u0642\u0637 \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u062f\u0627\u0631\u06cc\u062f\u060c \u0627\u0645\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 http.Server\u060c \u0627\u06af\u0631 \u062f\u0631 \u0622\u06cc\u0646\u062f\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0633\u0641\u0627\u0631\u0634\u06cc\u200c\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0627\u0631 \u06a9\u0645\u062a\u0631\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627\u060c \u067e\u0633 \u0627\u0632 \u0630\u062e\u06cc\u0631\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u060c \u0628\u0627 go run \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>go run main.go<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0634\u0631\u0648\u0639 \u0628\u0647 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u067e\u0633 \u0628\u0647 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u0648\u0645 \u062e\u0648\u062f \u0628\u0631\u06af\u0631\u062f\u06cc\u062f \u062a\u0627 \u062f\u0633\u062a\u0648\u0631 curl \u0631\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631\u060c \u0628\u0627\u06cc\u062f URL \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u062a\u06a9\u200c\u06a9\u0648\u062a\u06cc\u0634\u0646 (&#8216;) \u0628\u067e\u0648\u0634\u0627\u0646\u06cc\u062f\u061b \u062f\u0631 \u063a\u06cc\u0631 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a\u060c \u0634\u0644\u0650 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0634\u0645\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0646\u0645\u0627\u062f &amp; \u062f\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u00ab\u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u062f\u0631 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647\u00bb \u06a9\u0647 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0634\u0644\u200c\u0647\u0627 \u062f\u0627\u0631\u0646\u062f\u060c \u062a\u0641\u0633\u06cc\u0631 \u06a9\u0646\u062f. \u062f\u0631 URL\u060c \u0645\u0642\u062f\u0627\u0631\u06cc \u0627\u0632 first \u0628\u0631\u0627\u0628\u0631 first=1 \u0648 \u0645\u0642\u062f\u0627\u0631 second \u0628\u0631\u0627\u0628\u0631 second= \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl 'http:\/\/localhost:3333?first=1&amp;second='<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>This is my website!<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u062f\u0633\u062a\u0648\u0631 curl \u0646\u0633\u0628\u062a \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0642\u0628\u0644\u06cc \u062a\u063a\u06cc\u06cc\u0631\u06cc \u0646\u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0627\u06af\u0631 \u0628\u0647 \u062e\u0631\u0648\u062c\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0628\u0631\u06af\u0631\u062f\u06cc\u062f\u060c \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u062c\u062f\u06cc\u062f \u0634\u0627\u0645\u0644 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0627\u0633\u062a:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;::]:3333: got \/ request. first(true)=1, second(true)=<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc\u0650 \u0645\u0642\u062f\u0627\u0631 \u0627\u0648\u0644 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0645\u062a\u062f Has \u0645\u0642\u062f\u0627\u0631 true \u0631\u0627 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647\u061b \u0686\u0648\u0646 first \u0645\u0642\u062f\u0627\u0631\u06cc \u062f\u0627\u0631\u062f\u060c \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u06cc\u0646\u06a9\u0647 Get \u0645\u0642\u062f\u0627\u0631 \u06f1 \u0631\u0627 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0627\u0633\u062a. \u062e\u0631\u0648\u062c\u06cc\u0650 second \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 Has \u0645\u0642\u062f\u0627\u0631 true \u0631\u0627 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647\u061b \u0686\u0648\u0646 second \u0644\u062d\u0627\u0638 \u0634\u062f\u0647\u060c \u0627\u0645\u0627 \u0645\u062a\u062f Get \u0686\u06cc\u0632\u06cc \u063a\u06cc\u0631 \u0627\u0632 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062e\u0627\u0644\u06cc \u0628\u0631\u0646\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0627\u0633\u062a. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u0648 \u062d\u0630\u0641 first \u0648 second \u06cc\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u062a\u0641\u0627\u0648\u062a\u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u062a\u0648\u0627\u0628\u0639 \u0686\u0637\u0648\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc \u06a9\u0627\u0631\u062a\u0627\u0646 \u062a\u0645\u0627\u0645 \u0634\u062f\u060c CONTROL+C \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f \u062a\u0627 \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0645\u062a\u0648\u0642\u0641 \u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0641\u0642\u0637 \u0627\u0632 \u06cc\u06a9 http.Server \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f\u061b \u0627\u0645\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 first \u0648 second \u0627\u0632 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0628\u0631\u0627\u06cc \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 getRoot \u0631\u0627 \u0647\u0645 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u062a\u0646\u0647\u0627 \u0631\u0627\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u0646\u06cc\u0633\u062a. \u0631\u0648\u0634 \u0631\u0627\u06cc\u062c \u062f\u06cc\u06af\u0631 \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u062f\u0627\u062f\u0647 \u0628\u0647 \u0633\u0631\u0648\u0631\u060c \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u062f\u0627\u062f\u0647 \u062f\u0631 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0633\u062a. \u062f\u0631 \u0628\u062e\u0634 \u0628\u0639\u062f\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc *http.Request \u0628\u062e\u0648\u0627\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0647\u0646\u06af\u0627\u0645 \u0633\u0627\u062e\u062a \u06cc\u06a9 API \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 HTTP \u2014 \u0645\u0627\u0646\u0646\u062f REST API \u2014 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u06a9\u0627\u0631\u0628\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0631\u0633\u0627\u0644 \u062f\u0627\u062f\u0647\u200c\u0627\u06cc \u0628\u06cc\u0634 \u0627\u0632 \u0622\u0646\u0686\u0647 \u062f\u0631 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a\u200c\u0647\u0627\u06cc \u0637\u0648\u0644 URL \u062c\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u06cc\u0627 \u0635\u0641\u062d\u0647 \u0634\u0645\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a \u062f\u0627\u062f\u0647\u200c\u0627\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u06a9\u0647 \u062f\u0631\u0628\u0627\u0631\u0647 \u0646\u062d\u0648\u0647 \u062a\u0641\u0633\u06cc\u0631 \u062f\u0627\u062f\u0647 \u0646\u06cc\u0633\u062a\u061b \u0645\u0627\u0646\u0646\u062f \u0641\u06cc\u0644\u062a\u0631\u0647\u0627 \u06cc\u0627 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a\u200c\u0647\u0627\u06cc \u0646\u062a\u0627\u06cc\u062c. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f\u060c \u0645\u0639\u0645\u0648\u0644 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u062f\u0631 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0647 \u0648 \u0628\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a HTTP \u0627\u0632 \u0646\u0648\u0639 POST \u06cc\u0627 PUT \u0627\u0631\u0633\u0627\u0644 \u06a9\u0631\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u06cc\u06a9 http.HandlerFunc \u062f\u0631 Go\u060c \u0645\u0642\u062f\u0627\u0631 *http.Request \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648\u0631\u0648\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0641\u06cc\u0644\u062f Body \u062f\u0631 \u0628\u0631 \u062f\u0627\u0631\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 getRoot \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u062a\u062f getRoot \u062e\u0648\u062f\u060c \u0641\u0627\u06cc\u0644 main.go \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0632 io.ReadAll \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0641\u06cc\u0644\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a r.Body \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package main\n\nimport (\n    ...\n    \"io\"\n    ...\n)\n\n...\n\nfunc getRoot(w http.ResponseWriter, r *http.Request) {\n    ...\n    second := r.URL.Query().Get(\"second\")\n\n    body, err := io.ReadAll(r.Body)\n    if err != nil {\n        fmt.Printf(\"could not read body: %s\\n\", err)\n    }\n\n    fmt.Printf(\"%s: got \/ request. first(%t)=%s, second(%t)=%s, body:\\n%s\\n\",\n        ctx.Value(keyServerAddr),\n        hasFirst, first,\n        hasSecond, second,\n        body)\n    io.WriteString(w, \"This is my website!\\n\")\n}\n\n...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u060c \u0627\u0632 \u062a\u0627\u0628\u0639 io.ReadAll \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u0634\u062e\u0635\u0647 r.Body \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 *http.Request \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u062a\u0627\u0628\u0639 io.ReadAll \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u06a9\u0645\u06a9\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0627\u0632 \u06cc\u06a9 io.Reader \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f \u062a\u0627 \u0648\u0642\u062a\u06cc \u0628\u0647 \u062e\u0637\u0627 \u06cc\u0627 \u0627\u0646\u062a\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0628\u0631\u0633\u062f. \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 r.Body \u06cc\u06a9 io.Reader \u0627\u0633\u062a\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u062f\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u067e\u0633 \u0627\u0632 \u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u062f\u0646\u0647\u060c fmt.Printf \u0631\u0627 \u0647\u0645 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u0686\u0627\u067e \u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u0633 \u0627\u0632 \u0630\u062e\u06cc\u0631\u0647 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627\u060c \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 go run \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>go run main.go<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0686\u0648\u0646 \u0633\u0631\u0648\u0631 \u062a\u0627 \u0648\u0642\u062a\u06cc \u0622\u0646 \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u0646\u06a9\u0646\u06cc\u062f \u0628\u0647 \u06a9\u0627\u0631 \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0628\u0647 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u06cc\u06af\u0631 \u062e\u0648\u062f \u0628\u0631\u0648\u06cc\u062f \u062a\u0627 \u0628\u0627 curl \u0648 \u0628\u0627 \u06af\u0632\u06cc\u0646\u0647 -X POST \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a POST \u0648 \u0628\u0627 \u06af\u0632\u06cc\u0646\u0647 -d \u06cc\u06a9 \u0628\u062f\u0646\u0647 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc first \u0648 second \u0642\u0628\u0644\u06cc \u0631\u0627 \u0647\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -X POST -d 'This is the body' 'http:\/\/localhost:3333?first=1&amp;second='<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0634\u0645\u0627 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>This is my website!<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0634\u0645\u0627 \u0647\u0645\u0627\u0646 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631\u062a\u0627\u0646 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;::]:3333: got \/ request. first(true)=1, second(true)=, body:\nThis is the body<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631\u060c \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0642\u0628\u0644\u06cc \u0631\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f\u061b \u0627\u0645\u0627 \u062d\u0627\u0644\u0627 \u062f\u0627\u062f\u0647 This is the body \u0631\u0627 \u06a9\u0647 \u062f\u0633\u062a\u0648\u0631 curl \u0641\u0631\u0633\u062a\u0627\u062f\u0647 \u0647\u0645 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627\u060c \u0628\u0627 \u0641\u0634\u0631\u062f\u0646 CONTROL+C \u0633\u0631\u0648\u0631 \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u062f\u0631 \u0645\u062a\u063a\u06cc\u0631\u06cc \u0628\u062e\u0648\u0627\u0646\u062f \u0648 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u0686\u0627\u067e \u06a9\u0646\u06cc\u062f. \u0628\u0627 \u062a\u0631\u06a9\u06cc\u0628 \u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u062f\u0646\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u2014 \u0645\u0627\u0646\u0646\u062f encoding\/json \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 (Unmarshal) \u06cc\u06a9 \u0628\u062f\u0646\u0647 JSON \u0628\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc Go \u2014 \u062e\u0648\u0627\u0647\u06cc\u062f \u062a\u0648\u0627\u0646\u0633\u062a API\u0647\u0627\u06cc\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0634\u0645\u0627 \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0634\u06a9\u0644\u06cc \u06a9\u0647 \u0627\u0632 API\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0645\u06cc\u200c\u0634\u0646\u0627\u0633\u0646\u062f \u0628\u0627 \u0622\u0646\u200c\u0647\u0627 \u062a\u0639\u0627\u0645\u0644 \u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0644\u0628\u062a\u0647 \u0647\u0645\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 \u0633\u0645\u062a \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0634\u06a9\u0644 API \u0646\u06cc\u0633\u062a\u0646\u062f. \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a\u200c\u0647\u0627 \u0641\u0631\u0645\u200c\u0647\u0627\u06cc\u06cc \u062f\u0627\u0631\u0646\u062f \u06a9\u0647 \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u0646\u062f \u067e\u0631 \u06a9\u0646\u0646\u062f\u061b \u067e\u0633 \u062f\u0631 \u0628\u062e\u0634 \u0628\u0639\u062f\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u06a9\u0647 \u0627\u0632 \u0642\u0628\u0644 \u062f\u0627\u0631\u06cc\u062f\u060c \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0641\u0631\u0645 \u0631\u0627 \u0647\u0645 \u0628\u062e\u0648\u0627\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0641\u0631\u0645<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0645\u062f\u062a \u0637\u0648\u0644\u0627\u0646\u06cc\u060c \u0627\u0631\u0633\u0627\u0644 \u062f\u0627\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u0631\u0645\u200c\u0647\u0627 \u0631\u0648\u0634 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u062f\u0627\u062f\u0647 \u0628\u0647 \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u0648 \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u06cc\u06a9 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0628\u0648\u062f. \u0641\u0631\u0645\u200c\u0647\u0627 \u0627\u0644\u0627\u0646 \u0628\u0647 \u0645\u062d\u0628\u0648\u0628\u06cc\u062a \u06af\u0630\u0634\u062a\u0647 \u062e\u0648\u062f \u0646\u06cc\u0633\u062a\u0646\u062f\u060c \u0627\u0645\u0627 \u0647\u0645\u0686\u0646\u0627\u0646 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u062f\u0627\u062f\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0647 \u06cc\u06a9 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u062f\u0627\u0631\u0646\u062f. \u0645\u0642\u062f\u0627\u0631 *http.Request \u062f\u0631 http.HandlerFunc \u0646\u06cc\u0632 \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0645\u0634\u0627\u0628\u0647 \u0646\u062d\u0648\u0647 \u0641\u0631\u0627\u0647\u0645\u200c\u06a9\u0631\u062f\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0648 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f (\u062a\u0627\u0628\u0639 getHello) \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0627\u0632 \u06cc\u06a9 \u0641\u0631\u0645 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0627 \u0646\u0627\u0645 \u0627\u0648 \u067e\u0627\u0633\u062e \u0628\u062f\u0647\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0627\u06cc\u0644 main.go \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0647 \u0648 \u062a\u0627\u0628\u0639 getHello \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0632 \u0645\u062a\u062f PostFormValue \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 *http.Request \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\nfunc getHello(w http.ResponseWriter, r *http.Request) {\n    ctx := r.Context()\n\n    fmt.Printf(\"%s: got \/hello request\\n\", ctx.Value(keyServerAddr))\n\n    myName := r.PostFormValue(\"myName\")\n    if myName == \"\" {\n        myName = \"HTTP\"\n    }\n    io.WriteString(w, fmt.Sprintf(\"Hello, %s!\\n\", myName))\n}\n\n...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u062f\u0631 \u062a\u0627\u0628\u0639 getHello \u062e\u0648\u062f\u060c \u0645\u0642\u0627\u062f\u06cc\u0631 \u0641\u0631\u0645\u06cc \u06a9\u0647 \u0628\u0647 \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u0634\u0645\u0627 \u067e\u0633\u062a \u0634\u062f\u0647 \u0631\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u06cc\u062f \u0648 \u0628\u0647\u200c\u062f\u0646\u0628\u0627\u0644 \u0645\u0642\u062f\u0627\u0631\u06cc \u0628\u0627 \u0646\u0627\u0645 myName \u0645\u06cc\u200c\u06af\u0631\u062f\u06cc\u062f. \u0627\u06af\u0631 \u0645\u0642\u062f\u0627\u0631 \u067e\u06cc\u062f\u0627 \u0646\u0634\u0648\u062f \u06cc\u0627 \u0645\u0642\u062f\u0627\u0631\u0650 \u067e\u06cc\u062f\u0627 \u0634\u062f\u0647 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062e\u0627\u0644\u06cc \u0628\u0627\u0634\u062f\u060c \u0645\u062a\u063a\u06cc\u0631 myName \u0631\u0627 \u0631\u0648\u06cc \u0645\u0642\u062f\u0627\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 HTTP \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0635\u0641\u062d\u0647 \u0646\u0627\u0645\u0650 \u062e\u0627\u0644\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0646\u062f\u0647\u062f. \u0633\u067e\u0633\u060c \u062e\u0631\u0648\u062c\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0646\u0627\u0645\u06cc \u06a9\u0647 \u0641\u0631\u0633\u062a\u0627\u062f\u0647 \u2014 \u06cc\u0627 HTTP \u0627\u06af\u0631 \u0646\u0627\u0645\u06cc \u0646\u0641\u0631\u0633\u062a\u0627\u062f\u0647 \u2014 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0633\u0631\u0648\u0631 \u0628\u0627 \u0627\u06cc\u0646 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627\u060c \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0627 go run \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>go run main.go<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627\u060c \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u0648\u0645 \u062e\u0648\u062f\u060c \u0627\u0632 curl \u0628\u0627 \u06af\u0632\u06cc\u0646\u0647 -X POST \u0628\u0631\u0627\u06cc URL \u0645\u0633\u06cc\u0631 \/hello \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u061b \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u0628\u0647\u200c\u062c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 -d \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0628\u062f\u0646\u0647 \u062f\u0627\u062f\u0647\u060c \u0627\u0632 \u06af\u0632\u06cc\u0646\u0647 \u200e-F &#8216;myName=Sammy&#8217;\u200e \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0641\u0631\u0645 \u0628\u0627 \u0641\u06cc\u0644\u062f myName \u0648 \u0645\u0642\u062f\u0627\u0631 Sammy \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -X POST -F 'myName=Sammy' 'http:\/\/localhost:3333\/hello'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Hello, Sammy!<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u0644\u0627\u060c \u0633\u0644\u0627\u0645 \u0645\u0648\u0631\u062f\u0627\u0646\u062a\u0638\u0627\u0631 Hello, Sammy! \u0631\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f\u061b \u0686\u0648\u0646 \u0641\u0631\u0645\u06cc \u06a9\u0647 \u0628\u0627 curl \u0641\u0631\u0633\u062a\u0627\u062f\u06cc\u062f \u06af\u0641\u062a myName \u0628\u0631\u0627\u0628\u0631 Sammy \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u062a\u062f r.PostFormValue \u06a9\u0647 \u062f\u0631 \u062a\u0627\u0628\u0639 getHello \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u0642\u062f\u0627\u0631 \u0641\u0631\u0645 myName \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0645\u062a\u062f\u06cc \u062e\u0627\u0635 \u0627\u0633\u062a \u06a9\u0647 \u0641\u0642\u0637 \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u0633\u062a\u200c\u0634\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0641\u0631\u0645 \u062f\u0631 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0634\u0627\u0645\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0645\u062a\u062f r.FormValue \u0647\u0645 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a \u06a9\u0647 \u0647\u0645 \u0628\u062f\u0646\u0647 \u0641\u0631\u0645 \u0648 \u0647\u0645 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0631\u0627 \u062f\u0631 \u0628\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f. \u067e\u0633 \u0627\u06af\u0631 \u0627\u0632 \u200er.FormValue(&#8220;myName&#8221;)\u200e \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0631\u062f\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0633\u062a\u06cc\u062f \u06af\u0632\u06cc\u0646\u0647 -F \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0631\u062f\u0647 \u0648 myName=Sammy \u0631\u0627 \u062f\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f \u062a\u0627 Sammy \u0631\u0627 \u0647\u0645 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u067e\u0627\u0633\u062e \u0628\u0628\u06cc\u0646\u06cc\u062f. \u0627\u06af\u0631 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0628\u0647 r.FormValue \u0645\u06cc\u200c\u06a9\u0631\u062f\u06cc\u062f\u060c \u067e\u0627\u0633\u062e \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 HTTP \u0628\u0631\u0627\u06cc \u0646\u0627\u0645 \u0631\u0627 \u0645\u06cc\u200c\u062f\u06cc\u062f\u06cc\u062f. \u062f\u0642\u062a \u062f\u0631\u0628\u0627\u0631\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u0627\u0632 \u06a9\u062c\u0627 \u0627\u06cc\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0627 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u062a\u062f\u0627\u062e\u0644\u200c\u0647\u0627\u06cc \u0627\u062d\u062a\u0645\u0627\u0644\u06cc \u062f\u0631 \u0646\u0627\u0645\u200c\u0647\u0627 \u06cc\u0627 \u0628\u0627\u06af\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0631\u062f\u06cc\u0627\u0628\u06cc\u200c\u0634\u0627\u0646 \u0633\u062e\u062a \u0627\u0633\u062a \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u062f. \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u0633\u062e\u062a\u200c\u06af\u06cc\u0631\u0627\u0646\u0647\u200c\u062a\u0631 \u0628\u0627\u0634\u06cc\u0645 \u0648 \u0627\u0632 r.PostFormValue \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645\u061b \u0645\u06af\u0631 \u0627\u06cc\u0646\u06a9\u0647 \u0627\u0646\u0639\u0637\u0627\u0641 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0622\u0646 \u062f\u0631 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc \u0631\u0627 \u0647\u0645 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u0628\u0647 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0628\u0631\u06af\u0631\u062f\u06cc\u062f\u060c \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \/hello \u0645\u0634\u0627\u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0642\u0628\u0644\u06cc \u0644\u0627\u06af \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;::]:3333: got \/hello request<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u062a\u0648\u0642\u0641 \u0633\u0631\u0648\u0631\u060c CONTROL+C \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 getHello \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0646\u0627\u0645\u06cc \u0631\u0627 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0641\u0631\u0645\u0650 \u067e\u0633\u062a\u200c\u0634\u062f\u0647 \u0628\u0647 \u0635\u0641\u062d\u0647 \u0628\u062e\u0648\u0627\u0646\u062f \u0648 \u0633\u067e\u0633 \u0622\u0646 \u0646\u0627\u0645 \u0631\u0627 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0646\u0642\u0637\u0647 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627\u060c \u0686\u0646\u062f \u0645\u0648\u0631\u062f \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0647\u0646\u06af\u0627\u0645 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0634\u062a\u0628\u0627\u0647 \u067e\u06cc\u0634 \u0628\u0631\u0648\u0646\u062f \u0648 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0634\u0645\u0627 \u0645\u0637\u0644\u0639 \u0646\u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u062f\u0631 \u0628\u062e\u0634 \u0628\u0639\u062f\u060c \u062a\u0648\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u06a9\u062f\u0647\u0627\u06cc \u0648\u0636\u0639\u06cc\u062a \u0648 \u0647\u062f\u0631\u0647\u0627\u06cc HTTP \u0631\u0627 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u067e\u0627\u0633\u062e\u200c\u062f\u0627\u062f\u0646 \u0628\u0627 \u0647\u062f\u0631\u0647\u0627 \u0648 \u06a9\u062f \u0648\u0636\u0639\u06cc\u062a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u0631\u0648\u062a\u06a9\u0644 HTTP \u0627\u0632 \u0686\u0646\u062f \u0642\u0627\u0628\u0644\u06cc\u062a \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0646\u0645\u06cc\u200c\u0628\u06cc\u0646\u0646\u062f \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u062f\u0627\u062f\u0647 \u0648 \u06a9\u0645\u06a9 \u0628\u0647 \u0645\u0631\u0648\u0631\u06af\u0631\u0647\u0627 \u06cc\u0627 \u0633\u0631\u0648\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627 \u06a9\u062f \u0648\u0636\u0639\u06cc\u062a (Status Code) \u0646\u0627\u0645 \u062f\u0627\u0631\u062f \u0648 \u062a\u0648\u0633\u0637 \u0633\u0631\u0648\u0631 \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0646 \u062f\u0631\u06a9 \u0628\u0647\u062a\u0631\u06cc \u0628\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a HTTP \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u061b \u0627\u06cc\u0646\u06a9\u0647 \u0633\u0631\u0648\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0645\u0648\u0641\u0642 \u0645\u06cc\u200c\u062f\u0627\u0646\u062f \u06cc\u0627 \u0627\u06cc\u0646\u06a9\u0647 \u062f\u0631 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u06cc\u0627 \u062f\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u06a9\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0641\u0631\u0633\u062a\u0627\u062f\u0647 \u0645\u0634\u06a9\u0644\u06cc \u067e\u06cc\u0634 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0631\u0627\u0647 \u062f\u06cc\u06af\u0631 \u0627\u0631\u062a\u0628\u0627\u0637 \u0633\u0631\u0648\u0631\u0647\u0627 \u0648 \u06a9\u0644\u0627\u06cc\u0646\u062a\u200c\u0647\u0627\u06cc HTTP \u0628\u0627 \u0647\u0645\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u0647\u062f\u0631 \u0627\u0633\u062a. \u06cc\u06a9 \u0641\u06cc\u0644\u062f \u0647\u062f\u0631 \u06cc\u06a9 \u06a9\u0644\u06cc\u062f \u0648 \u0645\u0642\u062f\u0627\u0631 \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a \u06cc\u0627 \u0633\u0631\u0648\u0631 \u0628\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0645\u06cc\u200c\u0641\u0631\u0633\u062a\u062f \u062a\u0627 \u062f\u0631\u0628\u0627\u0631\u0647 \u062e\u0648\u062f\u0634 \u0628\u0647 \u0627\u0648 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u062f\u0647\u062f. \u0647\u062f\u0631\u0647\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u0646\u062f \u06a9\u0647 \u062a\u0648\u0633\u0637 \u067e\u0631\u0648\u062a\u06a9\u0644 HTTP \u0627\u0632 \u067e\u06cc\u0634 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647\u200c\u0627\u0646\u062f\u061b \u0645\u0627\u0646\u0646\u062f Accept \u06a9\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0628\u0627 \u0622\u0646 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u0686\u0647 \u0646\u0648\u0639 \u062f\u0627\u062f\u0647\u200c\u0627\u06cc \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u067e\u0630\u06cc\u0631\u062f \u0648 \u0628\u0641\u0647\u0645\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0647\u062f\u0631\u0647\u0627\u06cc \u062e\u0648\u062f\u062a\u0627\u0646 \u0631\u0627 \u0628\u0627 \u067e\u06cc\u0634\u0648\u0646\u062f x- \u0648 \u0633\u067e\u0633 \u0628\u0642\u06cc\u0647 \u06cc\u06a9 \u0646\u0627\u0645 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u0641\u06cc\u0644\u062f \u0641\u0631\u0645 myName \u062f\u0631 getHello \u06cc\u06a9 \u0641\u06cc\u0644\u062f \u0627\u0644\u0632\u0627\u0645\u06cc \u0634\u0648\u062f. \u0627\u06af\u0631 \u0628\u0631\u0627\u06cc \u0641\u06cc\u0644\u062f myName \u0645\u0642\u062f\u0627\u0631\u06cc \u0627\u0631\u0633\u0627\u0644 \u0646\u0634\u0648\u062f\u060c \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u06a9\u062f \u0648\u0636\u0639\u06cc\u062a \u00abBad Request\u00bb \u0631\u0627 \u0628\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f \u0648 \u06cc\u06a9 \u0647\u062f\u0631 x-missing-field \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0628\u062f\u0627\u0646\u062f \u06a9\u062f\u0627\u0645 \u0641\u06cc\u0644\u062f \u062c\u0627 \u0627\u0641\u062a\u0627\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f\u060c \u0641\u0627\u06cc\u0644 main.go \u0631\u0627 \u06cc\u06a9 \u0628\u0627\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0631\u0631\u0633\u06cc \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0631\u0627 \u0628\u0647 \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 getHello \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>main.go<\/code><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\nfunc getHello(w http.ResponseWriter, r *http.Request) {\n    ctx := r.Context()\n\n    fmt.Printf(\"%s: got \/hello request\\n\", ctx.Value(keyServerAddr))\n\n    myName := r.PostFormValue(\"myName\")\n    if myName == \"\" {\n        w.Header().Set(\"x-missing-field\", \"myName\")\n        w.WriteHeader(http.StatusBadRequest)\n        return\n    }\n    io.WriteString(w, fmt.Sprintf(\"Hello, %s!\\n\", myName))\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u060c \u0627\u06af\u0631 \u0645\u0642\u062f\u0627\u0631 myName \u062e\u0627\u0644\u06cc \u0628\u0627\u0634\u062f\u060c \u0627\u0628\u062a\u062f\u0627 \u0628\u0627 \u200ew.Header().Set\u200e \u0647\u062f\u0631\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0627 \u0646\u0627\u0645 x-missing-field \u0648 \u0645\u0642\u062f\u0627\u0631 myName \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0628\u062f\u0627\u0646\u062f \u06a9\u062f\u0627\u0645 \u0641\u06cc\u0644\u062f \u0627\u0631\u0633\u0627\u0644 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a. \u0633\u067e\u0633 \u0628\u0627 \u200ew.WriteHeader(http.StatusBadRequest)\u200e \u06a9\u062f \u0648\u0636\u0639\u06cc\u062a \u00ab400 Bad Request\u00bb \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0627\u0633\u062e \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0628\u0627 return \u0627\u0632 \u0627\u062f\u0627\u0645\u0647 \u062a\u0627\u0628\u0639 \u062e\u0627\u0631\u062c \u0645\u06cc\u200c\u0634\u0648\u06cc\u062f \u062a\u0627 \u062f\u0631 \u0646\u0628\u0648\u062f\u0650 \u0645\u0642\u062f\u0627\u0631 myName\u060c \u067e\u0627\u0633\u062e \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062e\u0648\u0634\u200c\u0622\u0645\u062f\u06af\u0648\u06cc\u06cc \u0627\u0631\u0633\u0627\u0644 \u0646\u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0646\u06a9\u062a\u0647 \u0645\u0647\u0645 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0647\u062f\u0631\u0647\u0627 \u0631\u0627 \u0628\u0627\u06cc\u062f \u0642\u0628\u0644 \u0627\u0632 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc w.WriteHeader \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f. \u067e\u0633 \u0627\u0632 \u0627\u0631\u0633\u0627\u0644 \u06a9\u062f \u0648\u0636\u0639\u06cc\u062a \u0648 \u0628\u062f\u0646\u0647 \u0628\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a\u060c \u062f\u06cc\u06af\u0631 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0647\u062f\u0631\u0647\u0627 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0633\u0631\u0648\u0631 \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>go run main.go<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u0648\u0645\u060c \u0628\u0627 curl \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a POST \u0628\u0647 \u0645\u0633\u06cc\u0631 \/hello \u0628\u0641\u0631\u0633\u062a\u06cc\u062f\u061b \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u0628\u062f\u0648\u0646 \u0641\u06cc\u0644\u062f myName. \u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u0647\u062f\u0631\u0647\u0627 \u0648 \u06a9\u062f \u0648\u0636\u0639\u06cc\u062a \u062f\u0631 \u067e\u0627\u0633\u062e\u060c \u0627\u0632 \u0641\u0644\u06af -i \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -i -X POST 'http:\/\/localhost:3333\/hello'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>HTTP\/1.1 400 Bad Request\nX-Missing-Field: myName\nDate: Mon, 01 Jan 2024 00:00:00 GMT\nContent-Length: 0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u062e\u0631\u0648\u062c\u06cc\u060c \u06a9\u062f \u0648\u0636\u0639\u06cc\u062a 400 Bad Request \u0648 \u0647\u062f\u0631 X-Missing-Field \u0631\u0627 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0641\u06cc\u0644\u062f myName \u0627\u0631\u0633\u0627\u0644 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u0647\u0645\u0627\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u0641\u06cc\u0644\u062f myName \u062a\u06a9\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -X POST -F 'myName=Sammy' 'http:\/\/localhost:3333\/hello'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Hello, Sammy!<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0628\u0627\u0631 \u0686\u0648\u0646 \u0641\u06cc\u0644\u062f myName \u0645\u0642\u062f\u0627\u0631 \u062f\u0627\u0631\u062f\u060c \u067e\u0627\u0633\u062e \u0645\u0639\u0645\u0648\u0644 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u06a9\u062f \u0648\u0636\u0639\u06cc\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 200 OK \u0648 \u067e\u06cc\u0627\u0645 \u062e\u0648\u0634\u200c\u0622\u0645\u062f\u06af\u0648\u06cc\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc \u06a9\u0627\u0631\u062a\u0627\u0646 \u062a\u0645\u0627\u0645 \u0634\u062f\u060c \u0628\u0627 \u0641\u0634\u0631\u062f\u0646 CONTROL+C \u0633\u0631\u0648\u0631 \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u062a\u0627\u0628\u0639 \u0647\u0646\u062f\u0644\u0631 getHello \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0641\u06cc\u0644\u062f \u0641\u0631\u0645 myName \u0631\u0627 \u0627\u0644\u0632\u0627\u0645\u06cc \u06a9\u0646\u062f \u0648 \u062f\u0631 \u0635\u0648\u0631\u062a \u0627\u0631\u0633\u0627\u0644\u200c\u0646\u0634\u062f\u0646 \u0622\u0646\u060c \u0628\u0627 \u0647\u062f\u0631 \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u06a9\u062f \u0648\u0636\u0639\u06cc\u062a \u062e\u0637\u0627 \u0628\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a \u067e\u0627\u0633\u062e \u062f\u0647\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f Go \u06cc\u06a9 \u0633\u0631\u0648\u0631 HTTP \u0633\u0627\u062e\u062a\u06cc\u062f. \u0628\u0627 http.HandleFunc \u0648 http.ListenAndServe \u0633\u0631\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u062f\u061b \u0633\u067e\u0633 \u0628\u0627 http.ServeMux \u0645\u0627\u0644\u062a\u06cc\u200c\u067e\u0644\u06a9\u0633\u0631 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u062e\u0648\u062f \u0631\u0627 \u0633\u0627\u062e\u062a\u06cc\u062f \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0628\u0627 http.Server \u0686\u0646\u062f \u0633\u0631\u0648\u0631 HTTP \u0631\u0627 \u0647\u0645\u200c\u0632\u0645\u0627\u0646 \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u06cc\u062f \u0648 \u0627\u0632 context \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0642\u0627\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0633\u0631\u0648\u0631 \u0628\u0647 \u0647\u0646\u062f\u0644\u0631\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u062f\u0644\u200c\u0648\u0631 \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0642\u0627\u0628\u0644\u200c\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u060c \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u062f\u0627\u062f\u06cc\u062f \u0648 \u0628\u0627 \u062e\u0648\u0627\u0646\u062f\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0632 \u0631\u0634\u062a\u0647 \u06a9\u0648\u0626\u0631\u06cc\u060c \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u0641\u0631\u0645\u200c\u0647\u0627\u060c \u0627\u0645\u06a9\u0627\u0646 \u062a\u0639\u0627\u0645\u0644 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0627 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u06a9\u0631\u062f\u06cc\u062f. \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646\u060c \u0647\u0646\u062f\u0644\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0628\u0627 \u0647\u062f\u0631\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u06a9\u062f\u0647\u0627\u06cc \u0648\u0636\u0639\u06cc\u062a HTTP \u067e\u0627\u0633\u062e \u062f\u0647\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0645\u0628\u0627\u0646\u06cc\u060c \u067e\u0627\u06cc\u0647\u200c\u0627\u06cc \u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u06af\u0627\u0645\u200c\u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0645\u0627\u0646\u0646\u062f \u0633\u0627\u062e\u062a Endpoint\u0647\u0627\u06cc JSON API\u060c \u0627\u0639\u0645\u0627\u0644 Timeout\u0647\u0627\u06cc \u0633\u0631\u0648\u0631\u060c \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u062e\u0627\u0645\u0648\u0634\u200c\u0634\u062f\u0646 \u0645\u0646\u0638\u0645 (Graceful Shutdown) \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc HTTPS. \u0628\u0627 \u062a\u0631\u06a9\u06cc\u0628 \u0627\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0628\u0627 \u0645\u062f\u0644 \u0647\u0645\u200c\u0632\u0645\u0627\u0646\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u06af\u0648\u0631\u0648\u062a\u06cc\u0646 \u062f\u0631 Go\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u0631\u0647\u0627\u06cc\u06cc \u0628\u0627 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0628\u0627\u0644\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f \u06a9\u0647 \u0647\u0632\u0627\u0631\u0627\u0646 \u0627\u062a\u0635\u0627\u0644 \u0647\u0645\u200c\u0632\u0645\u0627\u0646 \u0631\u0627 \u0628\u0647\u200c\u0637\u0648\u0631 \u06a9\u0627\u0631\u0622\u0645\u062f \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u2014 \u0647\u0645\u0647 \u0627\u06cc\u0646\u200c\u0647\u0627 \u0628\u062f\u0648\u0646 \u0647\u06cc\u0686 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u062e\u0627\u0631\u062c\u06cc \u0648 \u0641\u0642\u0637 \u0628\u0627 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f Go.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0648\u0642\u062a \u062e\u0648\u062f \u0631\u0627 \u0635\u0631\u0641 \u0633\u0627\u062e\u062a \u0633\u0631\u0648\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0632\u06cc\u0639 \u0645\u062d\u062a\u0648\u0627 \u0631\u0648\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u067e\u0631\u0648\u062a\u06a9\u0644 \u0627\u0646\u062a\u0642\u0627\u0644 \u0627\u0628\u0631\u0645\u062a\u0646 (HTTP) \u0628\u062e\u0634 \u0632\u06cc\u0627\u062f\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0645\u062d\u062a\u0648\u0627 \u0631\u0627 \u0633\u0631\u0648 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0686\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0639\u06a9\u0633 \u06af\u0631\u0628\u0647 \u0628\u0627\u0634\u062f \u0648 \u0686\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0647\u0645\u0627\u0646 \u0622\u0645\u0648\u0632\u0634\u06cc \u06a9\u0647 \u0647\u0645\u06cc\u0646 \u062d\u0627\u0644\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062e\u0648\u0627\u0646\u062f\u0646\u0634 \u0647\u0633\u062a\u06cc\u062f. \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f Go \u0628\u0647\u200c\u0635\u0648\u0631\u062a &hellip;<\/p>\n","protected":false},"author":9,"featured_media":7134,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[190,8],"tags":[],"class_list":["post-7133","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","category-8"],"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/comments?post=7133"}],"version-history":[{"count":1,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7133\/revisions"}],"predecessor-version":[{"id":7135,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7133\/revisions\/7135"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/7134"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=7133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=7133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=7133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}