Protocol

From
Alex Kocharin (2:5012/2.470)
To
Stas Degteff
Date
2006-03-30T00:46:28Z
Area
RU.UNIX.FTN
==/     Привет, Stas Degteff, как коннект? :)

 SD> Это тоже избыточно.

Всё в этом мире избыточно... :)

 SD>  Давай начнём с концепции.
 SD> Можно передавать управляющую информацию в виде XML (парсеры есть
 SD> готовые и в php, и в perl),

Не стоит ориентироваться на какой-либо язык. А так, при использовании других
языков, придется огребать проблемы с парсингом...

Да и всегда проще читать строки фиксированной длины, чем парсить.

 SD>  а данные передавать в бинарном виде в
 SD> ответ на запрос файла.

Кстати, хотелось бы избежать бинарного вида вообще. Хотя бы ради единообразия.
В твоем предложении сервер отдает файлы в бинарном виде, а клиент - в
текстовом. (бинари в пост-данные вроде не лезут)

 SD> В целях безопасности клиент должен передавать пароль только после
 SD> получения ответа от сервера. При этом реализовать CRAM - раз плюнуть.

А что есть CRAM?

 SD> Для передачи имени файла можно использовать заголовки HTTP и параметры
 SD> CGI. Файл можно передавать шифрованным.

А зачем шифровать файл?

 SD> Сессия отслеживается за счёт передачи идентификатора, дополнительно
 SD> после
 SD> хендшейка идентификатор сессии каждый раз может хешироваться с помощью
 SD> пароля на сессию. (Надо подумать, насколько сложно это реализовать.)

Я думал об идентификаторе сессии, но в конце концов отказался от него. Для
экономии времени и траффика, хотелось бы иметь наименьшее число запросов. А так
могут потребоваться лишние запросы для координации и закрытия сессии.

Советую не забывать, что здесь запросы получает апач, обработка каждого запроса
им займет некоторое время. Так что, в отличии от того же binkp, необходимо
избежать лишних "пустых" запросов.

Мне кажется, что лучше, если сервер видит один запрос как полноценную сессию, а
клиент в одной сессии дает столько запросов, сколько _ему_ надо. Так отпадают
все проблемы с таймаутами, обрывами, etc. И bsy'шки залипать не будут. :)

 SD> клиент в запросе передаёт список имеющихся файлов для сервера,
 SD> сервер в ответе передаёт список имеющихся файлов для клиента и
 SD> запрашивает первый файл.

Хотелось бы предоставить возможность запроса нескольких файлов.

 SD> Сессия завершается по обмену пустыми списками.

Вот он, лишний запрос...

 SD> Надо также предусмотреть команды удаления файлов из дальней очереди,
 SD> модификаторы докачки и т.п.

Ну это уже детали...

==\                                              ---  Alex Kocharin  ---
... Powered by Linux Mandrake 10.1 Official
--- ||*()*|| (Voice: 7-912-976-3321, Email: AlexKocharin(shift+2)mail.ru)
 * Origin: AK-Station, Kurgan, Russia (2:5012/2.470)
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/2 9 30 31 38 46 5015/28 221 5019/31 5020/545 715 760
SEEN-BY: 5020/1641 1982 2238 2871 4441 5021/29 44 5025/3 5027/12 5028/61
SEEN-BY: 5029/60 5030/115 830 901 1080 5035/38 5036/10 5041/4 5042/12 21
SEEN-BY: 5049/19 164 5053/16 5054/1 8 9 37 45 50 63 67 89 5059/9 5062/10
SEEN-BY: 5063/3 5064/7 5070/156 5071/22 5072/333 5077/70 5078/20 5080/111 147
SEEN-BY: 5080/239 1003 5085/13 87 5093/4 33 55 5095/20 5096/18 5097/31 64 303
SEEN-BY: 6000/0 1 12 6001/10 6028/1 6055/2 6083/12
PATH: 5012/2 30 5080/1003 5020/545 5054/1 37