LINUX.ORG.RU

История изменений

Исправление Moisha_Liberman, (текущая версия) :

а в случае http клиентов — на стороне клиента (вычисляется динамически или как еще).

Это не свойство протокола. Сервер не имеет никакой информации о текущем соединении. Сервер вернул документ в ответ на GET и забыл на фиг о клиенте на совершенно законных основаниях. В ftp это не так. Пока клиент не разорвёт соединение или не отвалится по тайм-ауту, он так и будет висеть на сервере.

можете ткнуть, где сказано про обязательность использования restart маркеров в ftp?

В разных ftp-серверах докачка файлов включается по-разному, реализована она, ессно, тоже по-разному. Как правило, это что-то типа AllowStoreRestart on. Т.е., при рестарте соединения и получении команды от клиента, сервер и клиент должны проверить в каком статусе их состояния.

ЕМНИП, это описано в RFC 959 «File Transfer Protocol», а команда на докачку выглядит как:

REST [byte_counter] (с какого байта продолжать)

RESTART (REST) The argument field represents the server marker at which file transfer is to be restarted. This command does not cause file transfer but skips over the file to the specified data checkpoint. This command shall be immediately followed by the appropriate FTP service command which shall cause file transfer to resume.

Подчеркну ещё раз – это прямо и явно прописанная в RFC часть протокола FTP. Это – команда ftp, аналогом которой в http является метод http(s) (GET, PUT, POST, HEAD, …). Нет, в http(s), даже если Вы расширите свой http(s)-сервер дополнительными методами из WebDAV, аналогов REST не появится.

P.S.

включился режим буквоедства.

Правильный подход. Всё нормально.

Исправление Moisha_Liberman, :

а в случае http клиентов — на стороне клиента (вычисляется динамически или как еще).

Это не свойство протокола. Сервер не имеет никакой информации о текущем соединении. Сервер вернул документ в ответ на GET и забыл на фиг о клиенте на совершенно законных основаниях. В ftp это не так. Пока клиент не разорвёт соединение или не отвалится по тайм-ауту, он так и будет висеть на сервере.

можете ткнуть, где сказано про обязательность использования restart маркеров в ftp?

В разных ftp-серверах докачка файлов включается по-разному, реализована она, ессно, тоже по-разному. Как правило, это что-то типа AllowStoreRestart on. Т.е., при рестарте соединения и получении команды от клиента, сервер и клиент должны проверить в каком статусе их состояния.

ЕМНИП, это описано в RFC 959 «File Transfer Protocol», а команда на докачку выглядит как:

REST [byte_counter] (с какого байта продолжать)

RESTART (REST) The argument field represents the server marker at which file transfer is to be restarted. This command does not cause file transfer but skips over the file to the specified data checkpoint. This command shall be immediately followed by the appropriate FTP service command which shall cause file transfer to resume.

Подчеркну ещё раз – это прямо и явно прописанная в RFC часть протокола FTP. Это – команда ftp, аналогом которой в http является метод http(s) (GET, PUT, POST, HEAD, …). Нет, в http(s), даже если Вы расширите свой http(s)-сервер дополнительными методами из WebDAV, аналогов REST не появится.

Исходная версия Moisha_Liberman, :

Нет.

а в случае http клиентов — на стороне клиента (вычисляется динамически или как еще).

Это не свойство протокола. Сервер не имеет никакой информации о текущем соединении.

можете ткнуть, где сказано про обязательность использования restart маркеров в ftp?

В разных ftp-серверах докачка файлов включается по-разному, реализована она, ессно, тоже по-разному. Как правило, это что-то типа AllowStoreRestart on. Т.е., при рестарте соединения и получении команды от клиента, сервер и клиент должны проверить в каком статусе из состояния.

ЕМНИП, это описано в RFC 959 «File Transfer Protocol», а команда на докачку выглядит как:

REST [byte_counter] (с какого байта продолжать)

RESTART (REST) The argument field represents the server marker at which file transfer is to be restarted. This command does not cause file transfer but skips over the file to the specified data checkpoint. This command shall be immediately followed by the appropriate FTP service command which shall cause file transfer to resume.

Подчеркну ещё раз – это прямо и явно прописанная в RFC часть протокола FTP. Это – команда ftp, аналогом которой в http является метод http(s) (GET, PUT, POST, HEAD, …). Нет, в http(s), даже если Вы расширите свой http(s)-сервер дополнительными методами из WebDAV, аналогов REST не появится.