# Uniform Resource Identifier
## Learning goals
## Script

An URI can consist of up to 6 parts which are: (what about username@.... ? compare to the wikipedia article w:Uniform resource locator)
1.) the used protocol (*this part is for browser action*) first comes the used application layer protocol which is always finnished by :// e.g. http:// ftp:// https://
2.) the domain or address the domain part of the URI can be further devided into:
* subdomain
* domain name
* top level domain
even though an URI is read from left to right the domain is read from right to left... interestingly the domain name can be replaced with the IP address that is resolved by the domain name system
So for example you could have:
"org" as a top level domain and "study-web-science" as a domain name making it "study-web-science.org" In the context of the web it has become a common practise to use www as a subdomain (even though this does not really give any information. http as a protocol was already specified and if i transfer html or something else should also be said by the http header that will be requested)
this will result in http://www.study-web-science.org which could already by entered to a web browser and be used to transfer some html.
(COMMENT: (not to include to the video) I assume natural numbers are not allowed as top level domains otherwise you could not decide if 10.0.0.3 is an IP adress or a subdomain of the top level domain 3)
3.) optionally the port number The most common protocols that can appear in an URI (like http, ftp, https, ssh) define a port number that is supposed to be used. But you can specify any other port number in an URI Important is that the URI changes as soon as the port number changes. (is http://www.study-web-science.de and http://www.study-web-science.de:80 the same uri since port 80 ist the standard port?)
4.) optionally the path (? is it really optionally or ist there just the default path "/" ) (*This part, including item 5, is for Web server action*) The path comes after the top level domain.
It is one of the most crucial ideas of the early web. Tim Berners-Lee wanted to have this global network of linked documents and files. And he wanted to allow people make the files of their computer referencable and accessable to about anybody. So if your computer was assigned a domain name by the domain name system you could technically make any file of your computer accessable and referencable by adding the path of your files to your domainname.
This is exactly what the path name represented.
((comment for animation: you have a computer with a directory called /var/www/ and in this directory you might have a file /var/www/mooc/index.html making this file accessible as study-web-science.org/mooc/index.html ))
now we have to things that are very specific to http(s) and the web but nevertheless they are part of URI specifications (DOUBLE CHECK THIS)
5.) and request parameter these parameters are send over has parameters in the http header and can be used by the server to deliver specified dynamic content or as parameters for scripts.
the parameter list is indicated to start after a question mark. The parameters are key value pairs seperated by an equal sign (=). parameters are optional for an URI
http://west.uni-koblenz.de:80/staff/?parameter1=hallo&parameter2=welt
6.) anchor / fragment (*This part is for browser action*): By using an anchor eg: #video the browser requesting an HTML document can already navigate to a certain spot within the document that is specified by the anchor. This is used very frequently in mediawiki and also in wikiversity. ((comment for the video: this can be demonstrated))