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

nur das erste<base> mithref zählt eine Quelle beginnend mit/ zielt auf die Wurzel../ verschiebt einen Ordner nach oben

B - 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

Das gleiche Ergebnis wie inTest B wie erwarte

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage