Los ataques HTTP flood se basan en las peticiones GET o POST del cliente. El cliente, es decir, el navegador que quiere acceder al sitio web, envía una de estas solicitudes. El servidor la procesa y, a su vez, envía la respuesta de vuelta al cliente.
Las peticiones GET recuperan contenido estático, como imágenes o bloques de texto. En cambio, las peticiones POST se utilizan para acceder a recursos dinámicos. En otras palabras, el método GET recibe datos del servidor, mientras que el método POST envía datos al servidor. Ambos pueden utilizarse para efectuar este tipo de ataque, aunque el método POST se emplea con más frecuencia, porque requiere un procesamiento complejo por parte del servidor.
Durante un ataque HTTP flood, se realizan muchas de estas peticiones simultáneamente y durante un período de tiempo prolongado. Por lo general, se usa una botnet para aumentar la cantidad de solicitudes. El ataque HTTP flood se diseña de tal manera que el servidor dedica el mayor volumen de recursos posible a cada petición. En una situación normal, esto es deseable, porque el servidor no recibe miles o cientos de miles de solicitudes por minuto, como sucede en este caso. Así, en este caso, el atacante no tiene más que esperar a que el servidor se desborde, con la consiguiente caída de la aplicación o del sitio web.