You upload one photo.
WordPress writes several.
On upload, WordPress core makes a copy at every registered size it can fit, and since 5.3 it scales anything over 2560 px down to a "-scaled" copy that pages use instead of your original. This page runs the same rules (wp_get_registered_image_subsizes, big_image_size_threshold, JPEG quality 82) in your browser and writes the real files.
When you insert the image, WordPress writes a srcset listing every copy with the same shape (the square thumbnail is left out) up to 2048 px, plus a sizes attribute. The browser does the choosing. Move the sliders to see what a phone, a laptop or a 4K screen fetches.
…