"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > आइरिस के लिए बॉडी लिमिट मिडलवेयर का अनुरोध करें

आइरिस के लिए बॉडी लिमिट मिडलवेयर का अनुरोध करें

2024-11-08 को प्रकाशित
ब्राउज़ करें:492

Request Body Limit Middleware for Iris

सिंहावलोकन

आइरिस बॉडी लिमिट मिडलवेयर आपके आइरिस वेब अनुप्रयोगों में आने वाले अनुरोध निकायों के आकार को नियंत्रित करने के लिए एक शक्तिशाली उपकरण है। अनुरोध निकायों के आकार पर एक सीमा निर्धारित करके, आप ग्राहकों को अत्यधिक बड़े पेलोड भेजने से रोक सकते हैं जो संभावित रूप से आपके सर्वर को प्रभावित कर सकते हैं या सेवा से इनकार (DoS) हमलों का कारण बन सकते हैं। यह मिडलवेयर उन अनुप्रयोगों के लिए विशेष रूप से उपयोगी है जो फ़ाइल अपलोड, JSON पेलोड, या किसी अन्य प्रकार के डेटा को संभालते हैं जो आकार में काफी भिन्न हो सकते हैं।

बॉडी लिमिट मिडलवेयर का उपयोग क्यों करें?

सुरक्षा

बॉडी लिमिट मिडलवेयर का उपयोग करने का एक प्राथमिक कारण आपके एप्लिकेशन की सुरक्षा को बढ़ाना है। आने वाले अनुरोध निकायों के आकार को सीमित करके, आप DoS हमलों के जोखिम को कम कर सकते हैं, जहां एक हमलावर सर्वर संसाधनों को समाप्त करने के लिए बड़े पेलोड भेजता है।

प्रदर्शन

अनुरोध निकायों के आकार को सीमित करने से आपके एप्लिकेशन के प्रदर्शन में भी सुधार हो सकता है। बड़े पेलोड महत्वपूर्ण मात्रा में मेमोरी और प्रोसेसिंग पावर की खपत कर सकते हैं, जिससे आपका सर्वर धीमा हो सकता है और उपयोगकर्ता अनुभव प्रभावित हो सकता है। एक उचित सीमा निर्धारित करके, आप यह सुनिश्चित कर सकते हैं कि आपका सर्वर उत्तरदायी और कुशल बना रहे।

संसाधन प्रबंधन

फ़ाइल अपलोड या बड़े JSON पेलोड को संभालने वाले अनुप्रयोगों में, संसाधनों को प्रभावी ढंग से प्रबंधित करना आवश्यक है। बॉडी सीमा निर्धारित करके, आप क्लाइंट को अत्यधिक बड़ी फ़ाइलें अपलोड करने या विशाल JSON ऑब्जेक्ट भेजने से रोक सकते हैं जो आपके सर्वर के संसाधनों पर दबाव डाल सकते हैं।

इंस्टालेशन

बॉडीलिमिट मिडलवेयर का उपयोग करने के लिए, आपको इसे अपने आईरिस एप्लिकेशन में आयात करना होगा:

import "github.com/kataras/iris/v12/middleware/bodylimit"

प्रयोग

बुनियादी सेटअप

बॉडी लिमिट मिडलवेयर का उपयोग करने के लिए, आपको एक आईरिस एप्लिकेशन बनाना होगा और मिडलवेयर को पंजीकृत करना होगा। 2 एमबी की सीमा के साथ मिडलवेयर कैसे सेट करें इसका एक उदाहरण नीचे दिया गया है:

package main

import (
    "github.com/kataras/iris/v12"
    "github.com/kataras/iris/v12/middleware/bodylimit"
)

func main() {
    app := iris.New()
    app.Use(bodylimit.New(2 * iris.MB)) // set the limit to 2 MB.

    handler := func(ctx iris.Context) {
        body, err := ctx.Body()
        if err != nil {
            ctx.StopWithPlainError(iris.StatusInternalServerError, err)
            return
        }

        ctx.Write(body) // write the request body back to the client.
    }

    app.Post("/", handler)
    app.Listen(":8080")
}

स्पष्टीकरण

  • सीमा: bodylimit.New फ़ंक्शन एक एकल पैरामीटर लेता है, जो बाइट्स में अनुरोध निकाय का अधिकतम आकार है। उपरोक्त उदाहरण में, सीमा 10 बाइट्स पर सेट है।
  • हैंडलर: हैंडलर अनुरोध निकाय को पढ़ता है और इसे प्रतिक्रिया पर वापस लिखता है। यदि अनुरोध निकाय सीमा से अधिक हो जाता है, तो मिडलवेयर अनुरोध को रोक देगा और 413 अनुरोध इकाई बहुत बड़ी स्थिति लौटा देगा।
  • बॉडी लिमिट मिडलवेयर रीडर इंस्टेंसेस को प्रबंधित करने के लिए एक सिंक.पूल का उपयोग करता है, जिसका उपयोग अनुरोध बॉडी को पढ़ने और आकार सीमा को लागू करने के लिए किया जाता है। यह दृष्टिकोण कुशल मेमोरी उपयोग सुनिश्चित करता है और प्रत्येक अनुरोध के लिए नए रीडर इंस्टेंस बनाने के ओवरहेड को कम करता है।

बॉडीलिमिट मिडलवेयर के साथ हैंडलर का परीक्षण

बॉडीलिमिट मिडलवेयर का उपयोग करने वाले हैंडलर का परीक्षण करने के लिए, आप आईरिस द्वारा प्रदान किए गए httptest पैकेज का उपयोग कर सकते हैं। हैंडलर का परीक्षण कैसे करें इसका एक उदाहरण यहां दिया गया है:

package main_test

import (
    "testing"

    "github.com/kataras/iris/v12"
    "github.com/kataras/iris/v12/httptest"
    "github.com/kataras/iris/v12/middleware/bodylimit"
)

func TestBodyLimit(t *testing.T) {
    limit := int64(10) // set the limit to 10 bytes for the shake of the test.

    handler := func(ctx iris.Context) {
        body, err := ctx.Body()
        if err != nil {
            ctx.StopWithPlainError(iris.StatusInternalServerError, err)
            return
        }
        ctx.Write(body)
    }

    app := iris.New()
    app.Use(bodylimit.New(limit))
    app.Post("/", handler)

    e := httptest.New(t, app)

    // Test with a body that is smaller than the limit.
    e.POST("/").WithText("123456789").Expect().Status(iris.StatusOK).Body().IsEqual("123456789")

    // Test with a body that is equal to the limit.
    e.POST("/").WithText("1234567890").Expect().Status(iris.StatusOK).Body().IsEqual("1234567890")

    // Test with a body that is bigger than the limit.
    e.POST("/").WithText("12345678910").Expect().Status(iris.StatusRequestEntityTooLarge)
}

निष्कर्ष

आईरिस बॉडी लिमिट मिडलवेयर आपके आईरिस वेब अनुप्रयोगों में आने वाले अनुरोध निकायों के आकार को नियंत्रित करने का एक सरल लेकिन प्रभावी तरीका प्रदान करता है। अनुरोध निकायों के आकार पर एक सीमा निर्धारित करके, आप अपने एप्लिकेशन की सुरक्षा, प्रदर्शन और संसाधन प्रबंधन को बढ़ा सकते हैं। आसान एकीकरण और उन्नत सुविधाओं के साथ, यह मिडलवेयर किसी भी आईरिस डेवलपर के लिए एक मूल्यवान उपकरण है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/kataras/request-body-limit-middleware-for-iris-4999?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3