Principles: Dynamic web pages
In addition to the principles for static pages, the following principles apply to the naming of web pages which are dynamic in nature (for example - sourced from web applications or other technologies).
- Wherever possible, session IDs, other temporary identifiers and system identifiers should not be included in the URL.
- A number of mechanisms exist for identification, authentication and session management. Using these mechanisms instead of user-based or session-based URLs will ensure usability and share-ability.
- The use of system identifiers in URLs prevents the URLs from being intuitive or memorable and should be avoided where possible. For example '/articles/about-the-moon/' is more useful than '/Articles.aspx?articleid=12'.
- If looking for 'city sporting ground', the link should point to 'http://www.dept.qld.gov.au/grounds/city' not 'http://www.dept.qld.gov.au/grounds/city/index.cgi?noback=1&groundsid=97'.
- Query string parameters should be used thoughtfully and sparingly as they can make a URL hard to read and/or to work with.
- When the parameters to be sent to a script or application do not clearly represent a hierarchy, query string parameters can be used as part of a URL.
- Where query string parameters would be empty or contain default values, they should be stripped from the URL. (When processing a form submission, consider redirecting the user to the cleaner URL).
- Query strings and/or Matrix URIs may be considered for use as filters/modifiers to access variations of a resource. However, if changing a parameter would result in a completely different resource, these types of URLs should be avoided. Consider using URI mapping to hide these URLs.
- Development variables should be avoided in production environments as they are rarely meaningful to user and often reflect temporary or relative states of sites causing them to be prone to change or inaccuracies.
- URLs such as www.dept.qld.gov.au/newstyle/ or www.deptver2.qld.gov.au/ should be avoided.