• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

396
Vistas
¿Cuál es el significado de HTTP2 no proporciona la API utilizada por los clientes, mientras que los websockets sí?

https://stackoverflow.com/a/42465368/462608

¿Dónde podrían los websockets todavía tener un lugar? El más grande es servidor->navegador empujado datos binarios. HTTP/2 permite datos binarios enviados por el servidor->navegador, pero no están expuestos en el navegador JS. Para aplicaciones como empujar cuadros de audio y video, esta es una razón para usar websockets.

¿Qué significa cuando dicen que los datos binarios enviados no están expuestos en el navegador JS? Solicito algún ejemplo que me ayude a entender esto.

https://stackoverflow.com/a/47108355

Entonces, HTTP2 push es realmente algo entre su navegador y el servidor, mientras que Websockets realmente expone las API que pueden usar tanto el cliente (javascript, si se ejecuta en el navegador) como el código de la aplicación (que se ejecuta en el servidor) para transferir datos en tiempo real.

Solicito algunos ejemplos para que entienda que el significado de HTTP2 push is really something between your browser and server y Websockets (socket.io) tiene una API que pueden usar los clientes.

¿Qué significa todo esto?

about 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Aquí, estamos hablando del paso de mensajes bidireccionales (bidi) entre el servidor y el cliente . En su caso/pregunta, el cliente es un navegador .

Para entender lo que está pasando, debemos entender qué son HTTP/2 y WebSocket.

  • Ambos son protocolos relacionados con la capa de aplicación.
  • HTTP/2 es el sucesor de HTTP/1. Si bien WebSocket es distinto de HTTP y se creó para proporcionar una comunicación dúplex completa entre el cliente y el servidor.
  • HTTP/2 admite transmisión bidireccional, pero no tiene acceso a esta transmisión desde JavaScript
  • HTTP/2 puede usar este flujo para "empujar" datos al navegador. Pero los datos enviados serán procesados solo por el navegador y su JavaScript no sabrá nada al respecto. Puede ser utilizado por un servidor para enviar recursos adicionales. Por ejemplo, el navegador solicitó index.html y el servidor con index.html también devuelve index.css porque sabe que el navegador solicitará index.css. Entonces, cuando el navegador comience a analizar index.html y encuentre un enlace en index.css, lo tomará del caché.
  • WebSocket proporciona transmisión bidireccional y usted tiene acceso a esta transmisión desde JavaScript. Entonces puede usar el método desend para enviar un mensaje al servidor. Y viceversa, el servidor puede enviar un mensaje al navegador usando la misma transmisión/canal

Así que ahora podemos tratar de responder a las preguntas

¿Qué significa cuando dicen que los datos binarios enviados no están expuestos en el navegador JS?

Significa que si el servidor "empuja" datos adicionales en su solicitud, no lo sabrá en JavaScript.

 fetch('/index.html') // Server respond with index.html data and // "Push" index.css data but in response you get only index.html data .then((res) => res.text()).then(console.log) // Only index.html data

Entonces, HTTP2 push es realmente algo entre su navegador y el servidor, mientras que Websockets realmente expone las API que pueden usar tanto el cliente (javascript, si se ejecuta en el navegador) como el código de la aplicación (que se ejecuta en el servidor) para transferir datos en tiempo real.

El navegador puede utilizar los datos adicionales "Push" de HTTP/2 para completar la memoria caché del navegador. Puedes leer sobre esto aquí . Con WebSocket puede obtener cualquier dato del servidor utilizando la propiedad onmessage de WebSocket en JavaScript

 websocket.addEventListener('message', (data) => { console.log(data) // Pushed by server data })

¡ PERO ! El navegador proporciona la funcionalidad de eventos enviados por el servidor (SSE) que le permite usar flujo HTTP/2 pero en modo de solo lectura. Significa que puede suscribirse a los eventos del servidor, pero no puede enviar eventos del cliente al servidor. Por lo tanto, solo funciona en una dirección (del servidor -> al cliente). Además, si el servidor no es compatible con el navegador HTTP/2, recurra a HTTP/1.x para SSE

about 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda