Was passiert, wenn <base href…> mit einem doppelten Schrägstrich versehen ist?
Ich möchte verstehen, wie man ein @ benut<base href="" />
Wert für meinen Webcrawler, daher habe ich mehrere Kombinationen mit gängigen Browsern getestet und schließlich etwas mit doppelten Schrägstrichen gefunden, das ich nicht verstehe.
Wenn Sie nicht alles lesen möchten, springen Sie zu den Testergebnissen vonD undE. Vorführung aller Tests:
http: //gutt.it/basehref.ph
Schritt für Schritt meine Testergebnisse beim Aufrufen vonhttp://example.com/images.html
:
A - Mehrfachbasis href
<html>
<head>
<base target="_blank" />
<base href="http://example.com/images/" />
<base href="http://example.com/" />
</head>
<body>
<img src="/images/image.jpg">
<img src="image.jpg">
<img src="./image.jpg">
<img src="images/image.jpg"> not found
<img src="/image.jpg"> not found
<img src="../image.jpg"> not found
</body>
</html>
Fazi
<base>
mithref
zählt eine Quelle beginnend mit/
zielt auf die Wurzel../
verschiebt einen Ordner nach obenB - Ohne abschließenden Schrägstrich
<html>
<head>
<base href="http://example.com/images" />
</head>
<body>
<img src="/images/image.jpg">
<img src="image.jpg"> not found
<img src="./image.jpg"> not found
<img src="images/image.jpg">
<img src="/image.jpg"> not found
<img src="../image.jpg"> not found
</body>
</html>
Fazi
<base href>
ignoriert alles nach dem letzten Schrägstrich, alsohttp://example.com/images
wirdhttp://example.com/
C - Wie es sein sollte
<html>
<head>
<base href="http://example.com/" />
</head>
<body>
<img src="/images/image.jpg">
<img src="image.jpg"> not found
<img src="./image.jpg"> not found
<img src="images/image.jpg">
<img src="/image.jpg"> not found
<img src="../image.jpg"> not found
</body>
</html>
Fazi
D - Doppelter Schrägstrich
<html>
<head>
<base href="http://example.com/images//" />
</head>
<body>
<img src="/images/image.jpg">
<img src="image.jpg">
<img src="./image.jpg">
<img src="images/image.jpg"> not found
<img src="/image.jpg"> not found
<img src="../image.jpg">
</body>
</html>
E - Doppelter Schrägstrich mit Leerzeichen
<html>
<head>
<base href="http://example.com/images/ /" />
</head>
<body>
<img src="/images/image.jpg">
<img src="image.jpg"> not found
<img src="./image.jpg"> not found
<img src="images/image.jpg"> not found
<img src="/image.jpg"> not found
<img src="../image.jpg">
</body>
</html>
Beide sind keine "gültigen" URLs, sondern echte Ergebnisse meines Webcrawlers. Bitte erläutern Sie, was in @ passiert isD undE Das../image.jpg
konnte gefunden werden und warum verursacht das Leerzeichen einen Unterschied?
Nur für Ihr Interesse:
<base href="http://example.com//" />
ist das gleiche wieTest C<base href="http://example.com/ /" />
ist ganz anders. Nur../image.jpg
gefunde<base href="a/" />
findet nur/images/image.jpg