Las peticiones no se realizan paralelamente en términos técnicos, se realizan una tras otra, pero el tiempo transcurrido entre el envío del primer paquete de la primera petición y el primer paquete de la segunda es tan mínimo que parecen paralelas. Si se considera el tiempo transcurrido coincidente entre dos o más
peticiones abiertas (peticiones realizadas en espera de respuesta) como peticiones paralelas diríamos que sí. Pero no, se pueden abrir varias conexiones TCP a la vez o enviar varias peticiones a la vez dentro de una misma conexión TCP establecida pero nunca es al mismo tiempo.
Cuando una petición está en curso significa que se envió el paquete y por tanto está en espera de una respuesta, justo tras enviar el paquete HTTP es posible enviar la siguiente petición en cola que establece otro
listener de respuesta.
Por ejemplo,
- timestamp de petición
1358865820 (precisión al segundo)
Código petición:
Ver originalPOST /ajax/mercury/send_messages.php HTTP/1.1
Host: www.facebook.com
Connection: keep-alive
Content-Length: 1112
X-SVN-Rev: 716081
[...]
- timestamp de respuesta
1358865822:
Respuesta
HTTP 200 OK del servidor.
Entre medias se realizaron
1 petición TCP y se recibieron
8 paquetes TCP, pero en una precisión al milisegundo se realizaron en timestamps diferentes, esto es, no son coincidentes en el tiempo.
Así que como dices se genera una cola de peticiones que se va resolviendo a cada petición realizada.