It will then tell the OS to run that program and pass the argument as a command-line argument to that program. If a browser encounters a protocol that it does not understand it will ask you what program you want to open the link with. This includes http and ftp as well as custom protocols such as about:config in Firefox and chrome://settings in Google Chrome to display the settings page. For example, the magnet: protocol used by Bittorrent does not use a URL instead it describes the torrent and the torrent hash.Īs you have experienced, browsers support some protocols built in. However the argument for any arbitrary protocol does not have to be a URL. Some protocols such as http and ftp accept URL as argument. But why and how does this steam thing work, can you do something similar on your own