es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Debo redirigir realmente http a https para todas las solicitudes?

Encontré un problema en el que si cargo un módulo de script utilizando URLs agnósticas de protocolo, no se carga.

Si sirvo el archivo HTML desde http://localhost:8080, no se carga. Recibo un error CORS (los encabezados CORS están en el servidor, por lo que debería funcionar)… sin embargo, o los navegadores no aceptan las redirecciones 301 para URLs agnósticas de protocolo o he pasado algo por alto.

Si uso https: funciona perfectamente: incluso desde http.

Estoy usando nginx… y solo me pregunto cuál es la forma adecuada de manejar esto.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con el uso de URL agnósticas de protocolo en el atributo src del módulo de script. Al ser servido desde http://localhost:8080, resulta en un error CORS. Sin embargo, el uso de https:// en la URL funciona bien incluso desde http.

    Una posible razón para esto podría ser que los navegadores no acepten redirecciones 301 para URL agnósticas de protocolo. También es posible que algo haya sido pasado por alto en la configuración del servidor.

    Como experto en TI especializado en nginx, hay algunas cosas que se pueden hacer para manejar este problema.

    En primer lugar, asegurarse de que las cabeceras CORS estén debidamente configuradas en el servidor. Esto se puede hacer estableciendo el encabezado Access-Control-Allow-Origin para permitir solicitudes desde el origen del archivo HTML.

    En segundo lugar, se recomienda utilizar un protocolo específico (http/https) en el atributo src del módulo de script en lugar de depender de URL agnósticas de protocolo. Esto puede evitar posibles problemas con redirecciones y compatibilidad con diferentes navegadores.

    Por último, si es necesario el uso de URL agnósticas de protocolo, es posible configurar nginx para redirigir las solicitudes HTTP a HTTPS. Esto se puede hacer configurando un bloque de servidor para la versión HTTP del sitio y utilizando una directiva `return 301 https://$server_name$request_uri;` para redirigir las solicitudes a la versión HTTPS del sitio.

    En general, es importante asegurarse de que la configuración del servidor y el uso del módulo de script estén debidamente configurados para evitar posibles problemas con las URL agnósticas de protocolo.

Comments are closed.