![]() |
Saber si un sitio web usa HTTP o HTTPS
Buenas gente, espero que estén bien.
Hoy me trae hasta acá la siguiente consulta. Estoy usando los componentes Indy en Delphi 11.2 y necesito ver como detectar si el sitio que quiero descargar usa HTTP o HTTPS para en caso de que use HTTPS poder configurar correctamente la seguridad del mismo. Les comento que he buscado en los foros e Internet y todo es algo viejo y solo hay código usando HTTP nadie hace referencia de como verificar si es uno u otro protocolo. Lo que encontré dentro de los fuentes de Indy es que verifican si el sitio comienza con HTTP o HTTPS pero no me convence mucho porque si el usuario no se lo pone como lo identifico. Pensé en ponerle yo delante HTTP y verificar si puedo descargarla y si anda bien listo, pero si da error verificar por HTTPS (o tomar directamente que es un protocolo seguro). Esto no me convence mucho porque creo que no sería lo mejor. Espero que alguien tenga alguna otra forma de hacerlo. Saludos, El Rayo |
Con el URL del sitio.
https://www.clubdelphi.com/ http://www.imss.gob.mx/ Si necesitas una función puedes utilizar esta mandandole el URL del sitio web:
Ejemplo de uso: La función la genero ChatGPT |
Gracias por responder pgranados. Igualmente lo que pasaste funciona a medias y te cuento porque.
He probado con solo pasarle como URL www.clubdelphi.com sin incluir HTTPS y da como que la URL es sin seguridad (HTTP). El tema por lo que pude ver en el código de las Indy es que utiliza lo que le pongas delante HTTPS (para indicar que tiene seguridad ) o HTTP (sin seguridad). Si no se le pasa nada y tiene seguridad lo toma como que no tiene porque no detecta el HTTPS delante. A mi modo de verlo si no existe una forma verdadera de validar esto sería intentar devolver o enviar los datos por HTTPS y si da error atraparlo y mandarlo por HTTP. También se puede hacer mandar por HTTP y si da error atraparlo y usar HTTPS. ¿Como es que hacen entonces los navegadores para con solo pasar www.clubdelphi.com saber si tienen que agregar HTTPS o HTTP para poder mostrar el sitio Saludos, El Rayo |
Cita:
Osea: No existe una forma "simple". Pero la solución es como te la pasan: Primero checas por "https" y luego por "http". Es la mas segura de que resulte. |
Cita:
Crea un WebBrowser y la propiedad navigate asigna la url, ejemplo: www.clubdelphi.com en algun evento, puede ser formCreate de ejemplo, despues busca en el webBrowser un evento donde el sitio web ya fue cargado (no recuerdo el nombre) y manda a llamar esta funcion
Donde Result es la URL completa del sitio y te regresara: https://www.clubdelphi.com/ , ya con el resultado solamente verifica si las primeras posiciones del string son HTTPS o HTTP y listo. No es una forma elegante y en mi punto de vista hasta se me hace exagerado, pero creo que es la forma mas sencilla de lograr lo que quieres. Saludos. |
No hay que complicarse. Lo que dije es exactamente lo que pasa y como resolverlo. Si miran como funciona "por debajo":
Esto pasa con clubdelphi: Cita:
Pero eso no siempre sucede. Asi que simplemente inviertan el asunto y haz "https" primero. |
Bueno, gracias por las respuestas. Entonces verificare primero por HTTP y si no funciona por HTTPS.
Saludos, El Rayo |
La franja horaria es GMT +2. Ahora son las 06:11:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi