.. index:: Web Development .. _web development: Web Development ----------------- | Wikipedia: https://en.wikipedia.org/wiki/Web_development Web Glossary ~~~~~~~~~~~~~~~ .. glossary:: Web Page A *web page* is a single ("static") :ref:`HTML` page. * Sometimes, when people say :term:`web page` they really mean the whole :term:`website` (as composed by e.g. a :term:`web application` backed by a :ref:`database ` or a static page generator with support for managing collections of interlinked :ref:`HTML` pages (e.g. :ref:`Sphinx`, :ref:`Tinkerer`). | Wikipedia: https://en.wikipedia.org/wiki/Web_page Website Web site A website is a set of interlinked :ref:`HTML` pages. Also used to refer to a web page. | Wikipedia: https://en.wikipedia.org/wiki/Website Web Application A web application is a software application running on a server which returns responses to specific requests and may interact with a database, email services, etc. * Like all :term:`systems `, a web application works with variable data inputs and outputs. | Wikipedia: https://en.wikipedia.org/wiki/Web_application | Docs: :ref:`Information Systems > Cloud Application Layers ` Web Hosting Service A web hosting service offers virtual or physical server resource space for a web page, web site, or web application. * Shared, Dedicated, Virtual Private, Cloud (Virtual Instance) * Managed (24/7 Supported // n hours a month), Unmanaged (file a support request and wait) | Wikipedia: https://en.wikipedia.org/wiki/Web_hosting_service | Docs: :ref:`clouds` | Docs: :ref:`web hosting` MAC address A MAC (*Media Access Control*) address is a 48-bit identifier. * :ref:`NIC` cards have a `MAC address`. * :ref:`Wireless` cards a `MAC address`. * Many :ref:`Wireless` Access Points (*AP*) MAY all have the same text ``SSID`` but different `MAC addresses` (e.g. for :ref:`wireless mesh networking ` or `WDS`) * :term:`DHCP` :term:`IP address` leases are tied to a `MAC address`. * A `MAC address` identifies a node to the nearest packet routing link segment (e.g. AP, Switch, Hub, Bridge). * Some :term:`IPv6 addresses ` contain the link `Mac address`. * :term:`UUID` version 1 128-bit identifiers contain a link `MAC address` and the date/time. (:ref:`Python` ``import uuid; print(uuid.uuid1())``) | Wikipedia: https://en.wikipedia.org/wiki/MAC_address ARP Address Resolution Protocol | Wikipedia: https://en.wikipedia.org/wiki/Address_Resolution_Protocol TCP Transmission Control Protocol | Wikipedia: https://en.wikipedia.org/wiki/Transmission_Control_Protocol IP Internet Protocol | Wikipedia: https://en.wikipedia.org/wiki/Internet_Protocol IP Address A :term:`IP` identifier number identifying a particular network entity (e.g. ``127.0.0.1``) * We are running out of 32-bit :term:`IPv4` addresses (``127.0.0.1``), and are now moving toward 128-bit :term:`IPv6` addresses ( ``0000:0000:0000:0000:0000:0000:0000:0001``, ``::1``) * Certain IP addresses are locally-routable (e.g. ``192.168.0.1`` within a home LAN) while others are globally-routable (e.g. ``8.8.8.8``) | Wikipedia: https://en.wikipedia.org/wiki/IP_address IPv4 IPv4 (:term:`IP` version 4) is a :ref:`web standard ` protocol defined by :ref:`ietf`. | Wikipedia: https://en.wikipedia.org/wiki/IPv4 | Docs: :term:`IPv4 Address` IPv4 Address :term:`IPv4` addresses are 32-bit :term:`IP Address` identifiers. | Standard: https://tools.ietf.org/html/rfc1918 .. code:: bash ## Local IPv4 Addresses 127.0.0.1 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 ## Global IPv4 Addresses 8.8.8.8 IPv6 IPv6 (:term:`IP` version 6) is a :ref:`web standard ` protocol defined by :ref:`ietf`. | Wikipedia: https://en.wikipedia.org/wiki/IPv6 IPv6 Address :term:`IPv6` addresses are 128-bit :term:`IP Address` identifiers. | Wikipedia: https://en.wikipedia.org/wiki/IPv6_address | Standard: https://tools.ietf.org/html/rfc4291 | Docs: https://en.wikipedia.org/wiki/IPv6_address#IPv6_address_scopes | Docs: IPv6 Address Examples: .. code:: bash ## Local IPv4 Addresses 0000:0000:0000:0000:0000:0000:0000:0001 == ::1 # 127.0.0.1 0001:0000:0000:0000:0000:0000:0000:0001 == 1::1 ::/128 # unspecified (~IPv4 0.0.0.0/32) ::1/128 # localhost (~IPv4 127.0.0.0/24) ::/0 # unicast default route (~IPv4 0.0.0.0/0) ::ffff:0:0/96 # IPv6-mapped IPv4 ::96 # IPV4 compatible IPv6 addresses (deprecated) 2002::/16 # 6to4 2001::/32 # teredo fc00::/7 # unique local address fe80::/10 #MAC # link-local address (~IPv4 169.254.0.0/16) fec0::/10 # site-local address (deprecated) 3ffe::/16 # 6bone (returned) ## Global IPv6 Addresses # 8.8.8.8 DHCP DHCP (*Dynamic Host Configuration Protocol*) is a standard for acquiring an :term:`IP address`, :term:`DNS`, and :ref:`NTP` settings. | Wikipedia: https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol Domain Name A human-readable textual name for a network entity (e.g. ``example.org``) | Wikipedia: https://en.wikipedia.org/wiki/Domain_name DNS Domain Name System. Converts a :term:`domain name` (e.g. ``localhost`` or ``wrdrd.github.io``) into an :term:`IP address` (e.g. ``127.0.0.1`` (IPv4) or ``::1`` (IPv6)). * Initial DNS hosting costs are often covered by Web Hosts. * There are DNS record types for different types of services. * Surfing to a website in a browser may utilize ``A``, ``AAAA``, and/or ``CNAME`` records to lookup the :term:`IP address` of the web server (or least busy load balancer). * Sending an email utilizes an ``MX`` record to lookup the IP address and sender information for the mail host. * Updates to DNS settings can take as long as 86400 seconds (one day) to propagate, depending upon the DNS TTL. | Wikipedia: https://en.wikipedia.org/wiki/Domain_Name_System | Docs: :ref:`DNS Configuration ` | Docs: :py:mod:`wrdrd.tools.domain` URL A URL (*Uniform Resource Locator*) is a string of characters that identify a resource location. Where ``host`` is an IP address, hostname, or domain name, a URL is of the form: :: scheme://host:port/p/a/t/h https://wrdrd.github.io/docs/ # https, wrdrd.github.io, port 443, /docs/ * With an :ref:`http ` scheme, the default port is 80. * With an :ref:`https ` scheme, the default port is 443. | Wikipedia: https://en.wikipedia.org/wiki/Uniform_resource_locator URI A URI (*Uniform Resource Identifier*) is a string of characters that identify a resource. :: scheme://host:port/p/a/t/h?query#fragment https://wrdrd.github.io/docs/#wrdrd * :term:`URLs ` are URIs. * :term:`URNs ` are URIs. | Wikipedia: https://en.wikipedia.org/wiki/Uniform_resource_identifier URN A URN (*Uniform Resource Name*) is a string of characters that identify a named resource *in a namespace*. :: urn:namespace:key urn:isbn:0-486-27557-4 urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 | Wikipedia: https://en.wikipedia.org/wiki/Uniform_resource_name Magnet URI A Magnet :term:`URI` is a :term:`URN` containing an key to retrieve from a network (such as a :ref:`DHT`). * :term:`Web browsers ` can be configured to open Magnet URIs with other programs. | Wikipedia: https://en.wikipedia.org/wiki/Magnet_URI_scheme UUID A UUID (*Universally Unique Identifier*) is a 128- :ref:`bit` identifier for a resource. :ref:`IETF` RFC 4122 defines 5 different algorithms for generating :term:`UUID `: * UUID 1 A UUID 1 identifier contains a :term:`mac address` and a :ref:`datetime