From 59fdf60075de1bb380561096b618f420c9b89ae6 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 12 Sep 2025 11:32:25 +0300 Subject: [PATCH] =?utf8?q?=D0=A1=D0=BD=D0=BE=D0=B2=D0=B0=20=D0=BF=D1=80?= =?utf8?q?=D0=BE=20=D0=BF=D1=80=D0=BE=D1=81=D1=82=D1=8B=D0=B5=20=D0=BF?= =?utf8?q?=D1=80=D0=BE=D1=82=D0=BE=D0=BA=D0=BE=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit https://portal.mozz.us/spartan/spartan.mozz.us/ http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/nex_protocol https://nightfall.city/nex/info/specification.txt https://nightfall.city/nex/info/station-guide.txt https://nightfall.city/nps/info/specification.txt https://nightfall.city/nps/info/form.txt https://textprotocol.org/ https://github.com/zzo38/scorpion/ В 0f779dbbdbf24f2aec67b5593e0d0e8590abac25 упоминал про множество всяких минималистичных протоколов. Причём более минималистичных относительно Gemini. Мне Gemini с самого начала не нравился, как и многим другим. Его правила работы с URL-ами и redirect-ами (86360e1584dc8f63d4c15c4658e856a3fbadb16d) косячны. Сама идея redirect -- нафиг. SNI и virtual hosting: нафиг, ибо всегда можно всё понавешать на разные IP адреса (конечно не в legacy мире IPv4) и домены. Из контекста, переходя с index-страниц, на практике почти всегда можно понять что за файл будет скачан -- поэтому нафиг и MIME types. Нафиг кодировки -- есть UTF-8. Вот и вышел nex:// протокол. echo path/to/document | nc host 1900 >document echo | nc nightfall.city 1900 | less К которому есть и "nps" протокол для отправки данных. Как отличить отправку данных (post) от получения (get)? Да банально используя другой TCP порт: nc nightfall.city 1915 classifieds YOUR MESSAGE GOES HERE . Ведь, строго говоря, вполне можно и бинари без проблем так передавать. Описание text:// протокола мне не нравится. Unicode emoji, и всё выглядит как ребус. Надо поломать голову, чтобы понять как работает протокол. Принципиально как и всякие gemini:// и прочие штуки. Там здорово то, что не обязательно использовать TLS, а можно и Noise-based протокол, вот только там не сказано как кодировать сообщения. Да и реализаций с ним нет. ------------------------ >8 ------------------------ Comparison: gemini:// vs. spartan:// gemini spartan ------ ------- transport TCP + TLS TCP request structure full URL hostname & path request encoding utf-8 us-ascii status codes 18 4 document type text/gemini text/gemini input prompt 1x status "=:" prompt line data upload limited yes mimetypes yes yes virtual hosting yes yes same-site redirects yes yes cross-site redirects yes no proxy requests yes no "lang" parameter yes no ------------------------ >8 ------------------------ gemini spartan scroll nex ------ ------- ------ --- naming scheme space sparta/greece scrolls & libraries cityscape & highways transport TCP + TLS TCP TCP + TLS TCP request structure full URL hostname & path full URL path request encoding utf-8 us-ascii utf-8 utf-8 status codes 18 4 18 0 document type text/gemini text/gemini text/scroll text/plain input prompt 1x status "=:" prompt line 1x status none data upload limited yes limited no mimetypes yes yes yes no virtual hosting yes yes yes no same-site redirects yes yes yes no cross-site redirects yes no yes no proxy requests yes no yes no "lang" response parameter yes no yes no lang request parameter no no yes no response metadata heuristic heuristic yes heuristic abstract/metadata requests no no yes no link relationships heuristic heuristic yes heuristic list nesting no no yes heuristic -- 2.52.0