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