Start here. This is the direct spoken answer to practice first.
Why this question matters
Many startup bugs come from treating service registration and request handling as interchangeable. The two phases cooperate, but they create different runtime objects and solve different problems.
builder.Services configures the application's dependency graph before the host is built. Calls such as AddControllers or AddDbContext register framework and application services. After builder.Build(), calls on app compose the request pipeline and map endpoints. Registration makes a capability available; pipeline configuration decides whether and where it participates in an HTTP request.