# Apple Filing Protocol

L'Apple Filing Protocol (AFP) è lo strato 6 (strato di presentazione) del protocollo di rete che offre servizi per la condivisione dei file in macOS e Classic Mac OS. In Mac OS X, AFP è uno dei tanti servizi per la condivisione file supportati, insieme al Server message block (SMB), Network File System (NFS), File Transfer Protocol (FTP), e WebDAV. Attualmente supporta nomi di file in Unicode, controllo di accesso ai file secondo lo standard POSIX, quote UNIX, suddivisione delle risorse, attributi estesi e sistemi di accesso avanzato ai file. Fino a Mac OS 9, AFP era il protocollo principale del sistema operativo per i servizi di condivisione dei file.

## Compatibilità

Dalla versione 3.0 di AFP la comunicazione si basa interamente sul protocollo TCP/IP (porta 548 o 427), sfruttando AppleTalk solamente per scopi secondari quali la ricerca di altri computer. Molte implementazione di terze parti usano AFP 2.x, che supporta AppleTalk anche come metodo di comunicazione. Versioni ancora precedenti si basano interamente sul protocollo AppleTalk. Per questa ragione, in alcuni documenti più vecchi l'AFP è indicato come AppleTalk Filing Protocol. Altri documenti si possono riferire ad esso come AppleShare, il nome del client AFP presente fino alla versione 9 di Mac OS. Argomenti notevoli per la compatibilità sono:
* In Mac OS X v10.4 e successivi è stato eliminato il supporto per i server che supportano esclusivamente AppleTalk per le comunicazioni;
* Computer che usano Mac OS Classic si possono connettere ai server AFP 3.x ma con alcune limitazioni: ad esempio, la dimensione massima di un file in Mac OS 8 è di 2 GB. È comunque consigliato l'uso di Mac OS 9.1 o successivi per la connessione ai server che usano la versione 3.x; se si dovessero usare versioni meno recenti è necessaria l'installazione del client AppleShare versione 3.8.8;
* È necessaria una versione non inferiore alla 3.0 per l'uso delle directory home in rete, in quanto Mac OS X ha bisogno dei permessi POSIX sulle directory home degli utenti. L'autenticazione singola per sessione in caso si usi il protocollo Kerberos richiede la versione 3.1.

## Storia

I cambiamenti effettuati dalla versione 3.0 rappresentano i maggiori avanzamenti del protocollo, aggiungendo delle funzionalità progettate esclusivamente per Mac OS X. Ma, come il client AppleShare dell'ambiente Classic, il client AFP in Mac OS X continua a supportare tipo e codici di creazione, insieme alle estensioni dei file.
AFP 3.0 è stato introdotto in macOS Server 10.0.3, ed è stato usato fino alla versione 10.1.5. È stata la prima versione ad usare i permessi POSIX derivanti dall'ambiente UNIX insieme alla codifica Unicode UTF-8 per i nomi dei file. La versione 3.0 supporta file per una dimensione massima di 2 TB, la massima dimensione per file e volumi di Mac OS X fino alla versione 10.2. Prima della versione 3.0, la dimensione massima per i nomi dei file che potevano essere inviati attraverso AFP era 31 caratteri.
AFP 3.1 è stato introdotto in Mac OS X Server 10.2. Tra i cambiamenti è degno di nota il supporto al protocollo di autenticazione Kerberos, la riconnessione automatica al client, condivisione di volumi NFS e connessione sicura ad AFP attraverso Secure Shell (SSH). La dimensione massima gestibile è stata portata a 8 TB con la versione 10.2 di Mac OS Server, e a 16 TB con la versione 10.3.
AFP 3.2 aggiunge il supporto alle liste di accesso controllate e agli attributi estesi in Mac OS X Server 10.4. La dimensione massima gestibile è al minimo 16 TB, comunque Apple non ha pubblicato nessun documento riguardante questo parametro per Mac OS X Server 10.4.
Prime implementazioni del server AFP erano disponibili in Mac OS a partire dalla versione 7.0, in AppleShare, AppleShare IP e nelle prime release “1.x” di Mac OS X Server. Nei client dei sistemi operativi, AFP era chiamato “Condivisione Personale di File”, e supportava un massimo di dieci connessioni simultanee. Queste implementazioni sono state usate fino alla versione 2.x del protocollo. AppleShare IP 5.x, 6.x e le release “1.x” di Mac OS Server introdussero la versione 2.2 di AFP. Questa fu la prima versione ad offrire il trasporto dei dati sia attraverso TCP/IP sia attraverso AppleTalk. Questa versione incrementò anche la dimensione massima dei volumi gestibili che passò da 4 GB a 2 TB; la dimensione massima dei file, comunque, rimase a 2 GB a causa delle limitazioni dell'ambiente Classic.

## Il client di Mac OS X

In Mac OS X, gli utenti possono connettersi a server AFP attraverso la finestra Network o inserendo l'URL di una risorsa AFP nella finestra di dialogo “Connessione al server”. Un URL AFP segue la forma: afp://<server>/<share>, dove <server> è l'indirizzo IP del server (è possibile usare anche nomi DNS o Bonjour) e <share> è il nome del volume condiviso.
Mac OS X offre anche una condivisione personale dei file, una implementazione “lite” della versione corrente di AFP. In Mac OS X 10.4, gli utenti possono condividere la loro cartella pubblica selezionando “Condivisione documenti” nella sezione condivisione delle preferenze di sistema.
Gli URL AFP per i server AppleTalk hanno la forma: afp://at/<AppleTalk name>:<AppleTalk zone>. Per le reti che non hanno una zona AppleTalk, un asterisco sostituisce il nome della zona.