एनईएससी निवेदन तथा प्रतिक्रिया प्रतिक्रियाएं इस फ्रेमवर्क पर बनाई प्रत्येक वेब अनुप्रयोग की बुनियाद है.
यह समझने के लिए कि आपके अनुप्रयोग के ज़रिए कितनी गुज़ारिश की जाती है और कैसे प्रतिक्रिया विकसित की जाती है, निर्माण कार्य में कुशल, स्थिर रहने और सुरक्षित वेब अनुप्रयोगों के लिए अत्यावश्यक है ।
यह श्रंखला आपको बधाई की प्रत्येक परत के माध्यम से मार्ग दिखाएगा, एक क्षण से एचटीटीपी निवेदन आपके सर्वर पर आता है जब प्रतिक्रिया ग्राहक को वापस भेजा जाता है.
यह गहराई से समझने के द्वारा, आप प्रदर्शन, लागू करने के लिए सक्षम हो जाएगा बढ़िया रूप से अच्छी तरह से, और अधिक प्रभावी समस्याओं मुद्दों को.
ध्यान दीजिए: यह एआई / एक तरीका है जो कि $००,००० के साथ मेरे परीक्षणों का हिस्सा है।**मैंने इसे काग़ज़ों की एक बेल भरी है, मेरी समझ, सवाल मैं इस लेख तैयार करने के लिए किया था.**यह मजेदार है और मैं कहीं और नहीं भरा एक अंतर भर देता है.
अगले घटक में पास करने से पहले
flowchart TB
OS[Operating System and Network TCP IP Socket Layer]
Kestrel[Kestrel Web Server HTTP11 HTTP2 HTTP3 QUIC TLS SSL Termination Connection Management]
Host[Host Layer Application Lifetime Dependency Injection Configuration Logging]
subgraph Middleware_Pipeline [Middleware Pipeline]
EH[Exception Handler Middleware catches exceptions]
HTTPS[HTTPS Redirection Middleware redirects HTTP to HTTPS]
Static[Static Files Middleware serves static content]
Routing[Routing Middleware matches request to endpoint]
AuthN[Authentication Middleware validates identity]
AuthZ[Authorization Middleware validates permissions]
Custom[Custom Middleware app specific logic]
EndpointMW[Endpoint Middleware executes matched endpoint]
end
EndpointExec[Endpoint Execution MVC Controllers and Actions Razor Pages Minimal APIs gRPC SignalR]
Response[Response Generation flows back through middleware]
BackKestrel[Back to Kestrel]
Client[Back to Client]
OS --> Kestrel --> Host --> EH --> HTTPS --> Static --> Routing --> AuthN --> AuthZ --> Custom --> EndpointMW --> EndpointExec --> Response --> BackKestrel --> Client
फिर (बदों को बुराई से) झिड़क कर डाँटने वाले की (क़सम)
अगले घटक को कार्यान्वित करने के बाद
चलो एक अनजाने में सम्पूर्ण मिट्टी की बनावट की कल्पना करते हैं. NENT 8:
HttpContextनेटवर्क परत2
बनाता है
HttpContextअनुप्रयोग जीवन प्रबंधित करता है
यह है जहां अपने अनुप्रयोग तर्क शुरू होता है.
प्राप्त करता है
sequenceDiagram
autonumber
participant Client
participant OS as OS/Network
participant Kestrel
participant Host
participant MW as Middleware Pipeline
participant Endpoint as Endpoint Execution
Client->>OS: HTTP request
OS->>Kestrel: Forward request
Kestrel->>Host: Create HttpContext
Host->>MW: Invoke pipeline
MW->>Endpoint: Route matched, execute
Endpoint-->>MW: Response
MW-->>Kestrel: Response after post-processing
Kestrel-->>OS: Send HTTP response
OS-->>Client: Response delivered
एमवीसी में ब्रिज का कामHttpContextराइसर पृष्ठ में एक पृष्ठ नियंत्रक
public abstract class HttpContext
{
// The incoming request
public abstract HttpRequest Request { get; }
// The outgoing response
public abstract HttpResponse Response { get; }
// User identity and authentication
public abstract ClaimsPrincipal User { get; set; }
// Request-scoped services
public abstract IServiceProvider RequestServices { get; set; }
// Connection information
public abstract ConnectionInfo Connection { get; }
// WebSocket support
public abstract WebSocketManager WebSockets { get; }
// Request cancellation
public abstract CancellationToken RequestAborted { get; set; }
// Session state
public abstract ISession Session { get; }
// Generic feature collection
public abstract IFeatureCollection Features { get; }
// And more...
}
न्यूनतम एपीआई्स में एक मार्ग हैंडलरHttpContext.
एक सिग्नल-RETHENT विधि
// Basic middleware signature
public delegate Task RequestDelegate(HttpContext context);
// Middleware can be implemented as a method
app.Use(async (context, next) =>
{
// Do something before the next middleware
Console.WriteLine($"Request: {context.Request.Path}");
// Call the next middleware
await next(context);
// Do something after the next middleware
Console.WriteLine($"Response: {context.Response.StatusCode}");
});
public delegate Task RequestDelegate(HttpContext context);
अनुक्रिया प्रवाह
हर मध्य भाग में जवाब का पता लगाया जा सकता है या परिवर्धित कर सकता है
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
// Middleware 1: Logging
app.Use(async (context, next) =>
{
Console.WriteLine($"[{DateTime.UtcNow:yyyy-MM-dd HH:mm:ss}] Request started: {context.Request.Method} {context.Request.Path}");
await next(context);
Console.WriteLine($"[{DateTime.UtcNow:yyyy-MM-dd HH:mm:ss}] Request finished: {context.Response.StatusCode}");
});
// Middleware 2: Custom header
app.Use(async (context, next) =>
{
context.Response.Headers["X-Custom-Header"] = "Hello from middleware!";
await next(context);
});
// Middleware 3: Short-circuit for specific path
app.Use(async (context, next) =>
{
if (context.Request.Path == "/health")
{
context.Response.StatusCode = 200;
await context.Response.WriteAsync("Healthy");
return; // Short-circuit - don't call next()
}
await next(context);
});
// Endpoint
app.MapGet("/", () => "Hello World!");
app.Run();
शीर्ष निश्चित रूप से बनाया गया हैhttp://localhost:5000/प्रतिक्रिया मुख्य भाग लिखा गया है
Console output:
[2024-01-15 10:30:45] Request started: GET /
[2024-01-15 10:30:45] Request finished: 200
Browser output:
Hello World!
Response headers:
X-Custom-Header: Hello from middleware!
केआईआरल क्लाइंट के लिए HTTP प्रतिक्रिया भेजता हैhttp://localhost:5000/health:
Console output:
[2024-01-15 10:30:50] Request started: GET /health
[2024-01-15 10:30:50] Request finished: 200
Browser output:
Healthy
Response headers:
X-Custom-Header: Hello from middleware!
निवेदन/ फिर से लोड करें अनुक्रम आरेख/healthकुंजी कॉनक्शन्स
वह
**स्कोर में केंद्रीय वस्तु है.**यह Spriptses:
जो कुछ भी आप वर्तमान अनुरोध के बारे में पता करने की जरूरत है और जो कुछ भी आप प्रतिक्रिया बनाने की जरूरत है वह है के माध्यम से पहुँच गया हैमिडैम
**मध्य ऐंपांस्क में निर्माण ब्लॉक है.**अपने छोटे से छोटे, मध्यवेर में एक ऐसा कार्य है जो निवेदन करता है:
डेलिगेट आग्रहएक निवेदन एक फंक्शन है जो कि एचटीटीपी निवेदन प्रक्रिया कर सकता है.
**पूरे मध्य - युग के बीच का निवेदन प्रतिनिधियों की एक श्रृंखला से किया जाता है:**हर मध्य भाग में अगले प्रतिनिधि को रैप करता है, कॉल की एक घोंसले की जंजीर बना देता है.
चलो कम से कम Abe. Nint कोर 8 अनुप्रयोग देखते हैं कि :
जब आप भेंट करते हैं
**, आप देखेंगे:**जब आप भेंट करते हैं
**ध्यान दें कि कैसे तीसरा मध्य-पूर्व छोटे-छोटे-छोटे-छोटे-छोटे-छोटे युद्ध के लिए।**मार्ग, लेकिन इसके पहले भी सारे मध्यवे को मौत के घाट उतार दिया गया.
**यह क्यों ज़रूरी है?**समझ लेना अत्यावश्यक है क्योंकि:
परफ़ॉर्मेंस ऑप्टीमाइज़ेशन: मौत के आदेश को जानना आपको महँगे ऑपरेशन करने और गैर - ज़रूरी काम से दूर रहने में मदद देता है ।
क्रास-चिंग चिंता: लॉगिंग, प्रमाणीकरण, त्रुटि, और अन्य चिन्ताओं को लागू करने के लिए मध्य खुदा है जो सभी निवेदनों को प्रभावित करता है.IStartupFilter, IHostedServiceडिबगिंग
HttpContextसुरक्षाइस पहले भाग में, हमने यह समझ से आधार स्थापित किया है कि यह कैसे बनावटी है, और कैसे इसके माध्यम से प्रवाह की मांग की है.
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.