]> Sergey Matveev's repositories - stargrave-blog.git/commit
Относительный URL в Gemini
authorSergey Matveev <stargrave@stargrave.org>
Sun, 21 Apr 2024 13:13:59 +0000 (16:13 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 21 Apr 2024 13:13:59 +0000 (16:13 +0300)
commit86360e1584dc8f63d4c15c4658e856a3fbadb16d
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent2cccf7ddd72756431263b6c3e96dfd710f2931ee
Относительный URL в Gemini

Спецификация Gemini говорит:

    URL may be absolute or relative. If relative, it should be resolved
    against the URL used in the original request.

вроде бы это интерпретируется однозначно как "берёшь текущий URL,
добавляешь к нему (относительную) ссылку".

Я в Gemini редко бываю, но бывает посещаю время от времени их ресурсы.
Заметил, что у некоторых относительные ссылки не работают. Текущий URL
"host.name/foo", относительная ссылка "bar/baz", и они ожидают
"host.name/bar/baz", а не "host.name/foo/bar/baz".

Решил выяснить кто же всё таки прав, хоть спецификация и не читается
двояко. Так вот первый (reference) клиент для Gemini был написан на
Python. И в нём используется urljoin (dcd9193595c262f96f29e4984ca0304106634fbc),
который вот так вот коряво объединяет ссылки. То есть, некоторые
gem-сайты ожидают bug-compatible поведения как у дурацкого Python
клиента, хоть это и не по спецификации, которую сам же автор клиента и
написал.