BitTorrent is a protocol for distributing files. It identifies content by URL and is designed to integrate seamlessly with the web. Its advantage over plain HTTP is that when multiple downloads of the same file happen concurrently, the downloaders upload to each other, making it possible for the file source to support very large numbers of downloaders with only a modest increase in its load.

An ordinary web server
A static metainfo file
A BitTorrent tracker
An *original* downloader
The end user web browsers
The end user downloaders
There are ideally many end users for a single file.
a host goes through the following steps
metainfo (.torrent) file using the complete file to be served and the URL of the tracker.metainfo file on the web server.metainfo (.torrent) file from some other web page.4:spam corresponds to spam.i<number>e. For example:
52 is encoded as i52e52 is encoded as i-52el<bencoded_elements>e.
["hello", 52] would be encoded as l5:helloi52ee.d<key1><value1>...<keyN><valueN>e. <key1>, <value1> etc. correspond to the bencoded keys & values.
{"hello": 52, "foo":"bar"} would be encoded as: d3:foo3:bar5:helloi52ee (note that the keys were reordered).Metainfo FileMeta-info files (also known as .torrent files) are bencoded dictionaries with the following keys:
announce: The URL of the tracker.info: This maps to a dictionary, with keys described below.All strings in a .torrent file that contains text must be UTF-8 encoded.
<aside>
.torrent file is NOT:
In real use, the meta info file has no
\nand consists of stream input in single line, this is for visualization.