This may be MTYWTK (more than you want to know) so feel free to disregard as appropriate ...
The original purpose of a link was to allow a file (normally, an executable file) to be accessed by two or more different names. This might come in handy when the behavior of the executable changed depending upon how it had been invoked. For example, the Unix editor vi could be invoked as vi or as view; if invoked as view, the specified file was opened in read-only mode, and the user did not have to remember whatever option was normally required to invoke vi in a read-only mode (of course, the code within vi had to check how it was invoked in order to determine how to behave). Similarly, a program might expect a file to be in a specific location (i.e., hardcoded). If your system were organized differently, and that file resided somewhere else, a link allows you to create a "virtual file" in the location expected by the program, without actually copying or moving the file from its current location.
A hard link was the original type of link. It works by using a a directory entry that points to the same inode for the file being linked to. For example, if the inode for vi is 12498, then the directory information for view will show inode 12498 as the first inode associated with the file. Because hard links use inodes to link files, they can only be used to link files within the same filesystem (i.e., you cannot hard-link a file in /var to a file in /home if /var and /home are separate filesystems).
Berkeley versions of Unix introduced the concept of the symbolic link. The major advantage of this type of link was that it allowed linking across filesystems. The result is the same, however -- two or more files can be accessed by the same name.
Linux makes extensive use of symbolic links, so that various programs will find things where they expect. For example, /usr/tmp is often linked to /var/tmp, so that System V-based programs will find temporary filespace where they would normally look for it.
Note that this sort of "link" is not the same as an HTML "link" (i.e., anchor or similar). The HTML link is really a reference to another file; the hard or symbolic link is a reference to the same file.
Hope this helps.