Go এর HTTP প্যাকেজের একটি ভূমিকা

Go এর HTTP প্যাকেজের একটি ভূমিকা
আপনার মত পাঠকরা MUO সমর্থন করতে সাহায্য করে। আপনি যখন আমাদের সাইটে লিঙ্ক ব্যবহার করে একটি ক্রয় করেন, আমরা একটি অনুমোদিত কমিশন উপার্জন করতে পারি। আরও পড়ুন

ওয়েব অ্যাপ্লিকেশন তৈরির জন্য গো একটি শক্তিশালী এবং নমনীয় ভাষা। দ্য নেট প্যাকেজ Go এর ইকোসিস্টেমে একটি অপরিহার্য ভূমিকা পালন করে।





বেশিরভাগ সার্ভার-সাইড প্রোগ্রামিং ভাষার মতো, এইচটিটিপি প্রোটোকলের সাথে ইন্টারঅ্যাক্ট করার জন্য একটি HTTP প্যাকেজ সহ গো শিপিং করে। প্রাসঙ্গিক গো প্যাকেজ হল http প্যাকেজ, এর একটি উপ-প্যাকেজ নেট প্যাকেজ





নেট/http প্যাকেজ কি?

  http প্যাকেজ ওভারভিউ

দ্য নেট/http প্যাকেজ হল Go-এর একটি স্ট্যান্ডার্ড লাইব্রেরি। এটি HTTP ক্লায়েন্ট, সার্ভার এবং অন্যান্য HTTP-ভিত্তিক ক্রিয়াকলাপ তৈরির জন্য ফাংশন এবং প্রকারের একটি সম্পূর্ণ সেট সরবরাহ করে। এর মধ্যে রয়েছে:





আইফোন ব্যাকআপ বহিরাগত ড্রাইভে সরান
  • HTTP অনুরোধ করার জন্য ফাংশন.
  • অনুরোধ এবং প্রতিক্রিয়া হ্যান্ডলিং.
  • HTTP অনুরোধ পরিবেশন.
  • সম্পর্কিত বস্তু যেমন হেডার এবং কুকিজ।

দ্য নেট/http প্যাকেজ টিএলএস/এসএসএল এনক্রিপশন, HTTP/2 এবং অন্যান্য উন্নত বৈশিষ্ট্যগুলিকে সমর্থন করে যা প্যাকেজটিকে গো ডেভেলপারদের জন্য একটি অপরিহার্য হাতিয়ার করে তোলে।

গরিলা ওয়েব টুলকিট থেকে ইকো ওয়েব ফ্রেমওয়ার্ক পর্যন্ত অনেক জনপ্রিয় গো লাইব্রেরি এবং ফ্রেমওয়ার্ক নেট/http প্যাকেজ



একটি সাধারণ HTTP সার্ভার শুরু করা হচ্ছে

এইচটিটিপি প্রোটোকলের সাথে কাজ করার জন্য আপনাকে যে প্রাথমিক ক্রিয়াকলাপগুলি বুঝতে হবে তার মধ্যে একটি সার্ভার শুরু করা।

এখানে একটি প্রোগ্রাম Go এ একটি সাধারণ সার্ভার চালান :





 package main 

import (
    "fmt"
    "net/http"
)

// handler is a typical HTTP request-response handler in Go; details later
func handler(w http.ResponseWriter, r *http.Request) {
    // Fprintf formats the string to a writer
    fmt.Fprintf(w, "Hello, World!")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

দ্য হ্যান্ডলার ফাংশন এর জন্য একটি সাধারণ অনুরোধ-প্রতিক্রিয়া হ্যান্ডলার http প্যাকেজ এই ফাংশনটি 'হ্যালো, ওয়ার্ল্ড!' HTTP প্রতিক্রিয়া লেখকের কাছে।

কোড চালানো এবং পরিদর্শন http://localhost:8080/ একটি ওয়েব ব্রাউজারে, আপনার দেখতে হবে 'হ্যালো, ওয়ার্ল্ড!' আপনার ব্রাউজারে প্রদর্শিত স্ট্রিং।





  একটি সার্ভার শুরু করার ফলাফল

অনুরোধ এবং প্রতিক্রিয়া হ্যান্ডলিং

আপনি এর সাথে ইনকামিং অনুরোধগুলি পরিচালনা করতে পারেন হ্যান্ডেল ফাঙ্ক পদ্ধতি http প্যাকেজ দ্য হ্যান্ডেল ফাঙ্ক পদ্ধতি একটি রুট স্ট্রিং এবং একটি হ্যান্ডলার ফাংশন নেয়।

দ্য http.অনুরোধ মেথড হল ইনকামিং রিকোয়েস্টের একটি উদাহরণ, এবং আপনি রুটের অনুরোধের সাথে ইন্টারঅ্যাক্ট করতে আপনার ইন্সট্যান্সের অসংখ্য পদ্ধতি ব্যবহার করতে পারেন।

 http.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) { 
    switch r.Method {
    case "GET":
        // handle GET request
    case "POST":
        // handle POST request
    default:
        http.Error(w, "Invalid request method", http.StatusMethodNotAllowed)
    }
})

উপরের কোডটি ব্যবহার করে http একটি HTTP হ্যান্ডলার ফাংশন সংজ্ঞায়িত করার জন্য প্যাকেজ /ব্যবহারকারী রুট হ্যান্ডলার ফাংশন রুটে ইনকামিং HTTP অনুরোধগুলি শোনে এবং অনুরোধ পদ্ধতির উপর ভিত্তি করে সেগুলি প্রক্রিয়া করে (যেমন, পাওয়া , পোস্ট , ইত্যাদি)

হ্যান্ডলার ফাংশন লাগে প্রতিক্রিয়া লেখক এবং অনুরোধ যুক্তি হিসাবে পদ্ধতি। দ্য প্রতিক্রিয়া লেখক একটি ইন্টারফেস যা হ্যান্ডলারকে ক্লায়েন্টের প্রতিক্রিয়া হিসাবে ডেটা লিখতে সহায়তা করে এবং অনুরোধ একটি struct যা ইনকামিং অনুরোধ সম্পর্কে তথ্য ধারণ করে, যেমন HTTP পদ্ধতি, URL, হেডার ইত্যাদি।

উপরের হ্যান্ডলার ফাংশন a ব্যবহার করে সুইচ অনুরোধ পদ্ধতি নির্ধারণ এবং পদ্ধতির উপর ভিত্তি করে বিভিন্ন কোড ব্লক চালানোর জন্য বিবৃতি। যদি পদ্ধতি হয় পাওয়া , হ্যান্ডলার হ্যান্ডেল করবে পাওয়া অনুরোধ অন্যথায়, পদ্ধতি হয় পোস্ট; এটা পরিচালনা করবে পোস্ট অনুরোধ

যদি পদ্ধতিটি অন্য কিছু হয় তবে এটি একটি পাঠাবে http.ত্রুটি একটি 'অবৈধ অনুরোধ পদ্ধতি' বার্তা এবং ক স্ট্যাটাস পদ্ধতির অনুমতি নেই HTTP স্থিতি কোড ক্লায়েন্টের কাছে।

আপনি ক্লায়েন্ট ব্যবহার করে স্ট্রিং ফিরে লিখতে পারেন লিখুন আপনার লেখক উদাহরণের পদ্ধতি যা স্ট্রিংয়ের একটি বাইট স্লাইস নেয় এবং স্ট্রিংটি লিখে।

 w.Write([]byte("Hello, World!")) 

আপনি ব্যবহার করতে পারেন হেডার লিখুন আপনার পদ্ধতি প্রতিক্রিয়া লেখক ক্লায়েন্টের কাছে হেডার লেখার উদাহরণ।

 w.WriteHeader(http.StatusOK) 

HTTP মিডলওয়্যারের সাথে কাজ করা

মিডলওয়্যার এমন ফাংশনগুলি নিয়ে গঠিত যা পরবর্তী হ্যান্ডলার ফাংশনে অনুরোধটি এগিয়ে যাওয়ার আগে অপারেশনের জন্য ইনকামিং HTTP অনুরোধগুলিকে বাধা দেয়।

Go এ মিডলওয়্যার হ্যান্ডলার ফাংশন লগ করার একটি উদাহরণ এখানে রয়েছে:

 func loggingMiddleware(next http.Handler) http.Handler { 
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        // log the request
        next.ServeHTTP(w, r)
        // log the response
    })
}

দ্য লগিং মিডলওয়্যার ফাংশন একটি HTTP হ্যান্ডলার গ্রহণ করে এবং একটি নতুন HTTP হ্যান্ডলার প্রদান করে। ফিরে আসা HTTP হ্যান্ডলার হল একটি বেনামী ফাংশন যা একটি HTTP প্রতিক্রিয়া লেখক এবং একটি HTTP অনুরোধ গ্রহণ করে। ফাংশন অনুরোধ লগ এবং কল HTTP পরিবেশন করুন উপর পদ্ধতি পরবর্তী HTTP হ্যান্ডলার, প্রতিক্রিয়া লেখক এবং আর্গুমেন্ট হিসাবে অনুরোধ পাস.

আপনি এর সাথে মিডলওয়্যার ফাংশন পরিচালনা করতে পারেন হাতল পদ্ধতি http প্যাকেজ দ্য হাতল পদ্ধতি রুট এবং মিডলওয়্যার ফাংশন নেয়।

 http.Handle("/", loggingMiddleware(http.HandlerFunc(handler))) 

HTTP প্যাকেজের সাথে পুনঃনির্দেশ

রিডাইরেক্ট করা ওয়েব অ্যাপ্লিকেশনগুলির জন্য একটি জনপ্রিয় অপারেশন যা ব্যবহারকারীদের অন্যান্য সংস্থান বা ওয়েব পৃষ্ঠাগুলিতে উল্লেখ করে।

আপনি ব্যবহার করে অন্য ওয়েবপেজে পুনঃনির্দেশ করতে পারেন পুনঃনির্দেশ পদ্ধতি http প্যাকেজ

 http.Redirect(w, r, "http://example.com", http.StatusMovedPermanently) 

দ্য পুনঃনির্দেশ পদ্ধতিতে লাগে প্রতিক্রিয়া লেখক এবং অনুরোধ দৃষ্টান্ত, নতুন পৃষ্ঠা URL, এবং পুনঃনির্দেশের জন্য একটি স্ট্যাটাস কোড।

আপনি Go এ জটিল API তৈরি করতে পারেন

দ্য http প্যাকেজ জটিল API তৈরির জন্য একটি শক্তিশালী এবং নমনীয় টুল। আপনি আপনার API-তে কার্যকারিতা যোগ করতে Go-এর সমৃদ্ধ স্ট্যান্ডার্ড লাইব্রেরি এবং অন্যান্য শক্তিশালী তৃতীয়-পক্ষ প্যাকেজগুলি ব্যবহার করতে পারেন, যেমন ডাটাবেস সংযোগ এবং বিভিন্ন ওয়েব ফ্রেমওয়ার্কের জন্য সমর্থন।

Go-এর মাধ্যমে, আপনি স্কেলযোগ্য, উচ্চ-কার্যক্ষমতা সম্পন্ন API তৈরি করতে পারেন যা উল্লেখযোগ্য অনুরোধ ট্র্যাফিক এবং জটিল ডেটা প্রক্রিয়াকরণের কাজগুলি সহজে পরিচালনা করে।