Protocol
- From
- Dmitry Terentiev (2:5003/58)
- To
- Stas Degteff
- Date
- 2006-03-31T16:01:10Z
- Area
- RU.UNIX.FTN
Hello Stas.
29 Mar 06 20:41, you wrote to Alex Kocharin:
SD> Это тоже избыточно. Давай начнём с концепции.
SD> Можно передавать управляющую информацию в виде XML (парсеры есть
XML тут imho совершенно не нужен. Разве что потом мы захотим этот протокол
десять раз совершенствовать, заворачивать в него трафик icq, jabber, ssh.
Кстати, могла бы получиться работающая реализация Internet over Fidonet ;-)
Кстати в Perle стандартный парсер Expat поддерживает только чтение из XML.
А XML::Parser может и не оказаться.
SD> готовые и в php, и в perl), а данные передавать в бинарном виде в
SD> ответ на запрос файла.
Вот это грамотно.
SD> В целях безопасности клиент должен передавать пароль только после
SD> получения ответа от сервера. При этом реализовать CRAM - раз плюнуть.
Придется еще в Cron запихивать скрипт, который будет отслеживать незавершенные
сессии и прибивать залипшие bsy-шки. Иначе придется писать не скрипт на perl
или php, а серверный модуль или даже отдельный специализированный веб-сервер.
SD> Для передачи имени файла можно использовать заголовки HTTP и параметры
SD> CGI. Файл можно передавать шифрованным.
SD> Сессия отслеживается за счёт передачи идентификатора, дополнительно
SD> после хендшейка идентификатор сессии каждый раз может хешироваться с
SD> помощью пароля на сессию. (Надо подумать, насколько сложно это
SD> реализовать.)
Можно все. И даже не очень сложно. Но так ли уж сильно требуется?
Можно завернуть все в SSL и не париться. Или обменяться открытыми PGP-ключами и
шифровать весь трафик (почти тот же SSL)...
/Красивости на XML скипнуты/
SD> запрашивает первый файл.
SD> клиент запрашивает файл и далее в том же запросе отдаёт первый файл
SD> сервер в ответе подверждает приём, запрашивает следующий файл и отдаёт
SD> запрошенный файл клиенту.
Тогда уж стоит отсылать не файлы целиком, а кусочками (можно и в несколько
нитей, если уж делать нормальную аутентификацию). По крайней мере, для отсылки
файлов от клиента к серверу дробить большие файлы нужно обязательно. Тогда
получим протокол с докачкой.
Dmitry
--- GoldED+/LNX 1.1.5
* Origin: (2:5003/58)
SEEN-BY: 46/50 50/12 400/567 814 450/1024 452/25 154 461/1313 2432/260 4614/20
SEEN-BY: 4615/21 4635/1024 5000/5000 5001/100 5002/63 5003/58 5010/2 53
SEEN-BY: 5011/13 5012/30 46 5015/28 221 5019/31 5020/545 715 760 1641 1982
SEEN-BY: 5020/2238 2871 4441 5021/29 44 5025/3 5027/12 5028/61 5029/60
SEEN-BY: 5030/115 830 901 1080 5035/38 5036/10 5041/4 5042/12 21 5049/19 164
SEEN-BY: 5053/16 5054/1 8 9 37 45 50 63 67 89 5059/9 5062/10 5063/3 5064/7
SEEN-BY: 5070/156 5071/22 5072/333 5077/70 5078/20 5080/111 147 239 1003
SEEN-BY: 5085/13 87 5093/4 33 55 5095/20 5096/18 5097/31 64 303 6000/0 1 12
SEEN-BY: 6001/10 6028/1 6055/2 6083/12
PATH: 5003/58 5080/1003 5020/545 5054/1 37