Start here. This is the direct spoken answer to practice first.
Why this question matters
Hosting questions reveal whether someone understands where an ASP.NET Core process ends and the network platform begins. Kestrel and a reverse proxy can both handle HTTP, but they do not have identical ownership.
Kestrel is ASP.NET Core's default cross-platform HTTP server. It listens for connections, parses HTTP, creates the request features exposed through HttpContext, and sends the application response. Kestrel can be exposed directly as an Internet-facing edge server, or it can run behind a reverse proxy; both are supported designs. A reverse proxy such as IIS, Nginx, YARP, or a cloud ingress can own the public address, TLS termination, host and path routing, load balancing, connection policies, and integration with platform process management. It then forwards requests to the application. I choose the topology from deployment needs rather than claiming that Kestrel is inherently unsafe without a proxy.