Что произойдет, если для <base href…> задана двойная косая черта?
Мне нравится понимать, как использовать<base href="" />
ценность для моего веб-сканера, поэтому я протестировал несколько комбинаций с основными браузерами и, наконец, нашел что-то с двойной косой чертой, которую я не понимаю.
Если вам не нравится читать все, перейдите к результатам тестаD а такжеE, Демонстрация всех тестов:
http://gutt.it/basehref.php
Шаг за шагом мои результаты теста на звонкиhttp://example.com/images.html
:
A - 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>
Заключение
<base>
сhref
счетчикиисточник, начинающийся с/
нацеливается на корень../
идет на одну папку вверхB - без косой черты
<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>
Заключение
<base href>
игнорирует все после последнего слэша, такhttp://example.com/images
становитсяhttp://example.com/
C - Как это должно быть
<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>
Заключение
D - Двойная косая черта
<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 - Двойная косая черта с пробелами
<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>
Оба являются не "действительными" URL, а реальными результатами моего веб-сканера. Пожалуйста, объясните, что произошло вD а такжеE тот../image.jpg
может быть найден и почему вызывает пробелы разницу?
Только для вашего интереса:
<base href="http://example.com//" />
такой же какТест С<base href="http://example.com/ /" />
совершенно другой. Только../image.jpg
найден<base href="a/" />
находит только/images/image.jpg