Das ist schwer zu sagen, denn es kommt ja auf die Seite und den Server an.
Seite also die Größe, wenn da natürlich 5MB übertragen werden, dann ist das Mist.
Server, der die Daten bereitstellen muss. Auch hier ist es schlecht, wenn der Server erst mal eine Gedenkpause macht, bevor er die Daten ausliefert. Das hängt aber vom Server und der Software ab. Wenn der natürlich erst mal 400ms Daten intern bearbeitet, Datenbanken eventuell langsam sind, oder andere Dienste und die Übertragung dann erst beginnt, dann ist das verlorene Zeit. Zeit die Du nicht mehr aufholen kannst.
Im Grunde sind es ja mehrere Punkte:
-> Request an Server -> interne Verarbeitung Apache -> Verarbeitung PHP, MySQL etc -> Start der Übertragung vom Apache -> je nach Größe unterschiedliche Übertragungsdauer.
Für den Abruf und die Zeit zählt aber alles ab dem "Request". (DNS-Abfrage habe ich mal weg gelassen)
Und wenn z.B. der Zugriff auf MySQL länger dauert oder die Verarbeitung von MySQL, weil gefiltert werden muss, dann sind das Wartezeiten, die in die Gesamtsumme einfließen.
Das Problem oben liegt nicht direkt am "Filter", sondern am Server, Software und Umsetzung. Im speziellen Fall wohl an PHP / MySQL, denn dem Apache ist der Filter auch egal, für den ist das ein Request wie alle anderen auch.
Optimieren geht also nur an den Stellen. Unter anderem auch mit Server-Caching um PHP und MySQL zu entlasten, Browser-Caching per Expires, um zusätzlich den Apache auch noch zu entlasten oder zumindest ETAG, um die Übertragung minimal zu halten. Scripte optimieren, Server-DIenste optimieren, Anbindung optimieren, auch zwischen Apache/PHP und Datenbank etc.
Gerade beim Caching macht es einen großen Unterschied, ob ein Request reinkommt und...
.. der Apache sagt: "Eh Browser, das hast Du schon alles, nimm das einfach"
oder
.. der Apache an PHP übergeben muss, PHP dann eine Anfrage an die Datenbank stellt, diese es zusammensuchen und PHP liefern muss, damit das dann die Daten an den Apache geben kann, damit der es dem Browser sendet.