Dynamisch Scripte mit und ohne HTTPS einbinden

Bindet man im <head>-Bereich Scripte unverschlüsselt ein und ruft eine Seite mit vorhandenem SSL-Zertifikat verschlüsselt auf, werden diese Scripte geblockt und damit nicht ausgeführt. Lässt man das Protokoll einfach weg, werden alle Scripte automatisch verschlüsselt aufgerufen, wenn per https:// der Zugriff auf die Webseite erfolgt — ansonsten unverschlüsselt.


Hierzu verwendet man statt

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

einfach

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

Der einzige Fallstrick besteht darin, darauf zu achten, dass das Script sowohl mit als auch ohne https abgerufen werden kann. Hierbei handelt es sich übrigens um keinen Trick, sondern das Verhalten ist offiziell spezifiziert in RFC 3986: "Uniform Resource Identifier (URI): Generic Syntax", im Bereich „4.2. Relative Reference“:

A relative reference that begins with two slash characters is termed a network-path reference; such references are rarely used.

Zurück