¿Por qué hay un modo ASCII en FTP, que prevalece en el software actual y las implementaciones de FTP? ¿Por qué no usar siempre binario independientemente de los datos?
¿Por qué hay un modo ASCII en FTP, que prevalece en el software actual y las implementaciones de FTP? ¿Por qué no usar siempre binario independientemente de los datos?
Respuestas:
En caso de duda, lea el RFC :
La estructura de archivos es la que se asume por defecto si no se ha utilizado el comando STRUcture pero todas las implementaciones de FTP deben aceptar las estructuras de archivo y registro para archivos de "texto" (es decir, archivos con TYPE ASCII o EBCDIC). La estructura de un archivo afectará tanto el modo de transferencia de un archivo (consulte la Sección sobre Modos de transmisión) como la interpretación y el almacenamiento del archivo.
La estructura "natural" de un archivo dependerá de qué host almacena el archivo. Un archivo de código fuente generalmente se almacenará en un Mainframe de IBM en registros de longitud fija pero en un DEC TOPS-20 como una secuencia de caracteres divididos en líneas, por ejemplo, por. Si la transferencia de archivos entre sitios tan dispares es útil, debe haber alguna forma de que un sitio reconozca las suposiciones del otro sobre el archivo.
etc, etc ... En resumen, es para garantizar que las representaciones de texto en una codificación se conviertan correctamente cuando se transfieren a hosts utilizando una codificación diferente.
Debido a que diferentes sistemas operativos (Windows, UNIX, VAX) utilizan diferentes métodos de final de línea para archivos de texto simples.
Windows (DOS) usa un par CR / LF, UNIX usa solo uno de ellos. El modo ASCII convierte los pares CRLF y el modo BIN no.
Ron
Creo que es solo porque a veces es conveniente. En el pasado, cuando FTP era cómo obtener archivos de un sistema a otro, era un gran ahorro de tiempo: no tenía que saber qué era el sistema en el otro extremo para tener un archivo de texto legible.
Pero sí, sobre todo es una molestia hoy. ¡Solo una máquina corrupta para los no iniciados!
El modo ASCII tenía su lugar en el día cuando la codificación de caracteres y EOL era un problema real, pero me gustaría ver a los clientes ftp eliminar o tal vez simplemente ocultar esta opción hoy. Hoy en día, las convenciones de EOL son las que se confunden entre los sistemas, pero he descubierto que a los editores de texto más decentes ya no les importa. Entonces, para evitar dañar los archivos binarios (o incluso algunos basados en texto), recomiendo usar el modo binario para todo.
El modo ASCII se usa para que el software pueda cambiar automáticamente los caracteres EOL a los valores adecuados para el cliente / servidor, dependiendo de si está cargando / descargando. Si está cargando al mismo tipo de sistema que está utilizando, no hay diferencia en estos modos.
Sin embargo, la razón de este modo es porque no todo el software en todos los sistemas manejará correctamente los EOL que no son exactamente el tipo correcto de EOL (por ejemplo, gran parte del software de Windows solo manejará "\ r \ n" correctamente y evitará algo horrible en "\ n").