Keep in mind that OBS is a universal streaming and recording application that is able to do much more than just capture one source (for example your webcam) and stream exactly that webcam. OBS is able to include more than one such source into an output video. For example, you can include some tiny source in some corner that displays added information. Or a tiny window of a second webcam. This overlaying of multiple sources is called compositing. Game streamers use this feature to create all their fancy overlays and widgets.
For all this flexibility it is possible and important to be able to rescale stuff at various stages. If you don't need all that and just want to capture a webcam and just want to stream exactly that webcam with exactly this one webcam source without any added source or overlay, you don't need all this rescaling. So you set all resolutions the same. Set all to 1920x1080: canvas size, output size, webcam size. This way, your webcam is never rescaled but output verbatim as it is captured by your webcam device.
If your machine isn't powerful enough to encode this 1080p video, it may be necessary to reduce the output resolution, for example 720p, because reduced resolution means less CPU requirement in the video encoder. In this case, it might be wise to also reduce canvas size and webcam resolution to 720p, because without compositing of multiple sources you can reduce the resolution of the canvas and the webcam to the output resolution with no visual impact. But it will use even less system resources.
About the canvas: think of OBS as a painter who paints his paintings upon a canvas. First, the canvas is gray and empty. The painter starts by putting some background color on it. Then he paints a forest. Then he paints a house into the forst. Then he paints some animals in front of the house. OBS does the same: The background is a source. The forest is a source. The house is a source. The animals are a source. Just like the painter is overlaying the images on the canvas to compose the whole picture, OBS is overlaying multiple video or still sources to create a complete video.
So the canvas resolution is the resolution OBS paints its sources on. You want to tell OBS to draw only one source to cover the complete canvas.
The output resolution is important if you want to finally distribute your picture. Imagine the painter does not want to sell the original painting but intends to digitally scan the image, give the scan to a printing service and sell many prints of the painting. This scan resolution is called output resolution in OBS. Usually, you paint with a high resolution for quality but distribute with a smaller resolution, because it isn't practical to distribute highest resolutions. Here my analogy fails, because with stream production canvas resolution is often not higher than the intended output resolution but simply the same. You play your game with 1080p and want to stream with 1080p - that's often exactly what you want. But if your viewers demand 720p instead of 1080p, because you use a streaming service without transcoding and many viewers aren't able to receive 1080p video, you might be forced to downscale to 720p. For this, you simply change the output resolution and keep everything else the same. If in a year more viewers are able to receive 1080p video, you can just set the output resolution back to 1080p.