There is a whole array of devices between you and the target server daemon, so any of those can be slow. Usually it looks like this from your browser to the website:
Browser
Network Manager
-
Network Card
Cable / WiFi (aka WLAN)
Switch or Access Point
Router
Modem
Wall Plug
box in basement (either active, like with most DOCSIS installations, or passive with VDSL)
copper or fibre cable
box on street containing ISP network devices
fibre channel to local ISP backbone
local backbone network devices
more centralised peering point
Central Internet Exchange (CIX)
another CIX
peering point
data centre uplink
data centre core modem
core router
core switch
rack switch
hypervisor's (HV) network card
HV
OS and virtualisation software (e.g. XCP-ng)
virtual machine (VM) network interface
-
server daemon for reverse proxy on VM (e.g. HAProxy, Envoy)
VM
OS, network interface, HV, rack switch, another HV, another VM's network interface and
OS
web server daemon (e.g. nginx, Apache2)
backend server daemon (e.g. Apache Tomcat, node.js, PHP FPM, Django, Golang binary)
the actual application's routing library (e.g. Nio, Gorilla)