Z39.50 je protokol pro vyhledávání v textových databázích. Jde o stavový protokol mezi klientem a serverem. Teoreticky je dosti komplikovaný, má mnoho volitelných parametrů. Může být provozován i dálkově, původně byl navržen pro komunikaci pomocí X.25 protokolů, později byl přizpůsoben na protokoly TCP/IP. Je standardizován ANSI/NISO[1] jako standard Z39.50[2] a ISO 23950.
Je hojně využíván v knihovních systémech pro dálkové prohledávání. Pracuje pomocí posloupností příkazů: Inicializace, Vyhledání, Ohlášení počtu výsledků, Převzetí výsledků, Ukončení. Příkazy mezi Inicializací a Ukončením se mohou v cyklech opakovat, přitom se přenášejí datové bloky PDU. Obecnost Z39.50 protokolu v určitém knihovním systému se omezuje výběrem jen určitých funkcí a atributů, čímž se vytváří tzv. profil. Jeden z nejrozšířenějších je profil Bath.[3] Veřejných serverů poskytujících služby protokolu Z39.50 je ve světě několik tisíc[4] (většinou větší knihovny). Robustnější knihovní systémy poskytují Z39.50 klienta i server, který je napojen na vnitřní databázi fondu.