From a "dumb" visit, strictly speaking... A website can get the information sent to them from the headers you send, as well as the metadata from the packets you send, and try to use plugins to see if they exist, then get information from them...
Without the server requesting anything special, this is what my browser sends:
GET / HTTP/1.1
User-Agent: Opera/9.80 (X11; Linux x86_64; U; Edition Linux Mint; en) Presto/2.10.289 Version/12.02
Host: 127.0.0.1:7590
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: en-CA,en;q=0.9
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
If I was visiting that from another location, it would also likely send a "Refferer" field telling me what website I visited from.
And the packets contain things like your IP Address...
A server can request more information from your browser if it needs to, and you can see a list of things your browser can send here.
Now, using other tools, like the website you linked does, you can gain Whois information on any IP address, you can get a general location from Geo-IP services, and can tell a lot about what you are running using CGI processes to run scanners like Nmap or other similar tools...
In addition to this, there is the information you can get from Java if you allow it... And JavaScript can do some pretty nifty features if your ports are closed since it is run locally. (Like trying to retrieve information from certain ports since CORS can be bypassed locally)
This can be used for banner grabbing which can tell a site what versions of software you are using. It is not as elaborate as Nmap can be though.