knitr::opts_chunk$set(
  comment = "#>",
  collapse = TRUE,
  warning = FALSE,
  message = FALSE
)

Following adapted from http://slacksite.com/other/ftp.html and https://en.wikipedia.org/wiki/File_Transfer_Protocol

FTP is a TCP based service. It utilizes two ports, a 'data' port and a 'command' port (or 'control' port). Traditionally these are port 20 for the data port and port 21 for the command port. The data port is not always on port 20, however.

Passive vs. Active mode

FTP may run in active or passive mode, which determines how the data connection is established [@slack].

Status codes

The server responds over the control connection with three-digit status codes in ASCII with an optional text message. These status codes are not the same as HTTP status codes - but have broad similarity in that the 1xx, 2xx, etc. series are sort of similar to HTTP status codes.

We don't currently have an implementation of responding appropriately to FTP status codes, but it's on the to do list.

Login

FTP login utilizes a normal username and password scheme for granting access [@tcpguide]. The username is sent to the server using the USER command, and the password is sent using the PASS command [@tcpguide]. If the information provided by the client is accepted by the server, the server will send a greeting to the client and the session will commence [@tcpguide]. If the server supports it, users may log in without providing login credentials, but the same server may authorize only limited access for such sessions

Anonymous FTP

A host that provides an FTP service may provide anonymous FTP access [@tcpguide]. Users typically log into the service with an 'anonymous' (lower-case and case-sensitive in some FTP servers) account when prompted for user name. Although users are commonly asked to send their email address instead of a password [@tamara], no verification is actually performed on the supplied data [@rfc1635]. Many FTP hosts whose purpose is to provide software updates will allow anonymous logins [@tamara].

References



ropensci/ftp documentation built on Sept. 3, 2020, 3:34 a.m.