|
| 1 | +# Push del servidor HTTP/3 |
| 2 | + |
| 3 | +HTTP/3 server push es similar a lo descrito en HTTP/2 ([RFC 7540] |
| 4 | +(https://httpwg.org/specs/rfc7540.html)), pero utiliza mecanismos diferentes. |
| 5 | + |
| 6 | +Un push de servidor es efectivamente la respuesta a una petición que el cliente |
| 7 | +nunca envió. |
| 8 | + |
| 9 | +Los push del servidor sólo se permiten si la parte del cliente los ha aceptado. |
| 10 | +En HTTP/3 el cliente incluso establece un límite para el número de pushes que |
| 11 | +acepta, informando al servidor de cuál es el ID máximo del flujo de push. |
| 12 | +Sobrepasar ese límite provocará un error de conexión. |
| 13 | + |
| 14 | +Si el servidor considera probable que el cliente quiera un recurso extra que no |
| 15 | +ha pedido pero que debería tener de todas formas, puede enviar una trama |
| 16 | +`PUSH_PROMISE` (sobre el flujo de petición) mostrando cómo es la petición a la |
| 17 | +que el push es una respuesta, y luego enviar esa respuesta real sobre un nuevo |
| 18 | +flujo. |
| 19 | + |
| 20 | +Aunque el cliente haya dicho que los envíos son aceptables de antemano, cada |
| 21 | +flujo individual enviado puede ser cancelado en cualquier momento si el cliente |
| 22 | +lo considera conveniente. Entonces envía una trama `CANCEL_PUSH` al servidor. |
| 23 | + |
| 24 | +## Problemática |
| 25 | + |
| 26 | +Desde que esta característica se discutió por primera vez en el desarrollo de |
| 27 | +HTTP/2 y más tarde después de que el protocolo se enviara y se desplegara en |
| 28 | +Internet, esta característica se ha discutido, no ha gustado y se ha machacado |
| 29 | +de innumerables maneras diferentes con el fin de conseguir que sea útil. |
| 30 | + |
| 31 | +El push nunca es "gratuito", ya que, aunque ahorra medio viaje de ida y |
| 32 | +vuelta, sigue utilizando ancho de banda. A menudo es difícil o imposible para |
| 33 | +el servidor saber con un alto nivel de certeza si un recurso debe ser enviado |
| 34 | +por push o no. |
0 commit comments