Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

165
Vistas
Configuración de depuración de http3

Estoy tratando de configurar un entorno de prueba para http3 solo para aprender.

Lo que hice hasta ahora:

  • Creó un certificado let's encrypt real con dns-01
  • Node.js compilado con el indicador CUIC experimental
  • curl compilado con soporte http3

Creé un script con el contenido del ejemplo :

 'use strict'; const key = getTLSKeySomehow(); const cert = getTLSCertSomehow(); const { createQuicSocket } = require('net'); // Create the QUIC UDP IPv4 socket bound to local IP port 1234 const socket = createQuicSocket({ endpoint: { port: 1234 } }); socket.on('session', async (session) => { // A new server side session has been created! // The peer opened a new stream! session.on('stream', (stream) => { // Let's say hello stream.end('Hello World'); // Let's see what the peer has to say... stream.setEncoding('utf8'); stream.on('data', console.log); stream.on('end', () => console.log('stream ended')); }); const uni = await session.openStream({ halfOpen: true }); uni.write('hi '); uni.end('from the server!'); }); // Tell the socket to operate as a server using the given // key and certificate to secure new connections, using // the fictional 'hello' application protocol. (async function() { await socket.listen({ key, cert, alpn: 'h3-25' }); console.log('The socket is listening for sessions!'); })();

Solo para futuros lectores, las funciones getTLSKeySomehow() y getTLSCertSomehow() se pueden reemplazar por esto:

 const fs = require("fs") const key = fs.readFileSync('privkey.pem') const cert = fs.readFileSync('cert.pem')

Luego traté de abrir la página web habilitando http3 en Firefox con la función de bandera network.http.http3.enabled habilitada en about:config . Con la dirección https://my.dev.domain.name:1234/ pero esto no funcionó.

El uso de curl no funcionó, vale la pena señalar que estoy usando WSL en Windows 10. Acceder a la misma URL en curl se agota cada vez. Solo para verificar que mi configuración esté bien: puedo verificar que Firefox y curl pueden acceder a www.google.com sin fallas a través de http3.

Cuando implemento un segundo punto final http2 con la misma clave, funciona bien sin ninguna advertencia de certificado.

¿Cómo puedo depurar lo que estoy haciendo mal?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Su ejemplo de código solo implementa QUIC, que es el protocolo de transporte debajo de HTTP/3 (similar a cómo TCP + TLS son los protocolos de transporte debajo de HTTP/1.1).

Esto significa que necesita código adicional para implementar HTTP/3 sobre Quic. Idealmente, desea una biblioteca, ya que es bastante compleja. Aquí hay enlaces a la versión preliminar más reciente de las especificaciones que deben implementarse:

  • HTTP/3: https://datatracker.ietf.org/doc/html/draft-ietf-quic-http-33
  • QPACK: https://datatracker.ietf.org/doc/html/draft-ietf-quic-qpack-20

Supongo que node.js eventualmente también agregará soporte para esos, para que esta tarea sea más fácil.

Sin compatibilidad con HTTP/3, podría probar secuencias QUIC puras (sin semántica HTTP) en su servidor de prueba. Puede usar cualquiera de las diversas bibliotecas QUIC para hacer esto, pero es posible que no haya una herramienta CLI lista para usar como curl.

over 4 years ago · Santiago Trujillo 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda