Addresses
To get what we want from a server, we use a web address, that is a Uniform Resource Locator, URL. These represent requests to a specific server to give us a specific resource or response.
URLs contain a lot of information, so it is useful to understand the parts of an address. Taking a careful look at a URL can help you evaluate a web page to better understand the source or judge the risk of a click.
To view the current URL in your browser, click in the address bar at the top of the window. To view the full URL in a hyperlink, hover your cursor over the link and look for URL to display in the lower left.
Uniform Resource Locators
Let’s dissect a URL:
https://example.com/about?key=value#anchor
protocol ://
domain .
top-level domain /
path and filename ?
query with parameters #
anchor
Protocol | there is actually more than 100 defined Internet Protocols, however with URLs the most common is Hypertext Transfer Protocol (HTTP). "http://" is insecure, "https://" is secure and should be standard for all sites. |
Domain | the Domain Name System (DNS) is often described as a "phone book" that translates easy to understand web addresses into the appropriate IP addresses of servers with the desired information. Domains end with a . and "top-level domain", e.g. ".com" or ".edu". |
Subdomain | (optional) can be added in front of the main domain. For example, in "lib.uidaho.edu" > lib is a subdomain of uidaho , which is a subdomain of the top-level domain edu . |
Port | (optional) occasionally added at the end of the domain, referring to specific communication endpoints that the server is listening on. For the web the standard ports are :80 (http) and :443 (https). This is rarely seen any more! |
Path + filename | these can be imagined like folders and files on the server (and actually are in static web sites). For example, /about/index.html , is the index file in the "about" folder. If no filename is given, by default the server provides the file named index . |
Query string | (optional) added to the end of an URL following a ? and is given in key value pairs like key=value . Multiple pairs can be separated by & . The characters must be URL encoded / escaped, since some characters such as space are not allowed in URLs. The queries are processed by the server or javascript, so what exactly they do depends on the page. For example, /index.php?title=example&action=edit might return a wiki article in edit mode from a server running PHP. |
Anchor | (optional) added to the end of a URL following a # . They traditionally correspond to specific element id on an HTML page, but are often used by javascript to add other functionality. For example, /index.html#Chapter1 might jump to a chapter heading in the web page, or /about.html#help might pop up a modal. |
Checkout url-parts for more URL dissecting!
404?
When you send a request to a server (i.e. type in an address, click on a link, or fill in a form) it sends back a status code to let your browser know what is happening. Users generally don’t see the status codes, except the dreaded 404.
404 is an error message in the HTTP protocol, saying that the URL doesn’t correspond to anything on the server, i.e. the page can’t be found, there is nothing at that address! Most websites have a special page that displays when you get a 404.
Static and Dynamic Web
Traditionally, web servers acted more or less like a read-only shared folder of files. The parts of a URL were basically just the paths to find documents in a folder. So you can think of a website as a folder of files.
A static website is just that–a collection of HTML, CSS, JS, images, and other files that are delivered exactly as they are on the server to users. A URL in a static site generally represents a request for an HTML document in a specific file location. Static sites are simple and high performance.
In contrast a dynamic website uses a server-side programming language to create pages on the fly when a user makes a request. Thus a URL represents a query, rather than an existing document on the server. Think of complex sites such as social media, where users are constantly adding more data and there is no “static” documents, but streams of every changing content. None-the-less, what the server ultimately delivers to your browser is still HTML, CSS, and JS.
In these platforms content, templates, and metadata are usually stored in a database. For example, the popular content management systems WordPress and Drupal use the scripting language PHP and database MySQL. This enables complex interactivity such as comments, customized views, user management, and a web-based admin interface.
My IP Address
Internet Protocol addresses (IP Address) are numbers assigned to identify computers connected to a network, allowing devices to connect sort of like a phone number. The standard is managed by the Internet Assigned Numbers Authority (IANA).
When you connect to a network, you computer gets assigned an IP address. Try searching for “my ip address” on Google to check yours!