Il y a une réponse très simple à cela: profilez les performances de votre serveur Web pour voir quelle est la pénalité de performances pour votre situation particulière. Il existe plusieurs outils pour comparer les performances d'un serveur HTTP vs HTTPS (JMeter et Visual Studio viennent à l'esprit) et ils sont assez faciles à utiliser.
Personne ne peut vous donner une réponse significative sans quelques informations sur la nature de votre site Web, du matériel, des logiciels et de la configuration du réseau.
Comme d'autres l'ont dit, il y aura un certain niveau de surcharge en raison du cryptage, mais cela dépend fortement de:
- Matériel
- Logiciel serveur
- Rapport entre contenu dynamique et contenu statique
- Distance du client au serveur
- Durée de session typique
- Etc (mon préféré)
- Comportement de mise en cache des clients
D'après mon expérience, les serveurs qui sont lourds sur le contenu dynamique ont tendance à être moins impactés par HTTPS parce que le temps passé au chiffrement (surcharge SSL) est insignifiant par rapport au temps de génération de contenu.
Les serveurs qui sont lourds sur un ensemble assez restreint de pages statiques qui peuvent facilement être mises en cache en mémoire souffrent d'un surcoût beaucoup plus élevé (dans un cas, le débit a été perturbé sur un "intranet").
Edit: Un point qui a été soulevé par plusieurs autres est que la négociation SSL est le coût principal de HTTPS. C'est correct, c'est pourquoi la «longueur de session typique» et le «comportement de mise en cache des clients» sont importants.
De nombreuses sessions très courtes signifient que le temps de prise de contact dépassera tous les autres facteurs de performance. Des sessions plus longues signifieront que le coût de la négociation sera engagé au début de la session, mais les demandes ultérieures auront des frais généraux relativement faibles.
La mise en cache du client peut être effectuée en plusieurs étapes, depuis un serveur proxy à grande échelle jusqu'au cache du navigateur individuel. Généralement, le contenu HTTPS ne sera pas mis en cache dans un cache partagé (bien que quelques serveurs proxy puissent exploiter un comportement de type homme du milieu pour y parvenir). De nombreux navigateurs mettent en cache le contenu HTTPS pour la session en cours et souvent sur plusieurs sessions. L'impact de la non-mise en cache ou moins de mise en cache signifie que les clients récupéreront le même contenu plus fréquemment. Il en résulte plus de demandes et de bande passante pour desservir le même nombre d'utilisateurs.