Useful Network Terminology
This post will cover the most common terms used in web development with the following domains, protocols and software: HTTP, SSL, API, JS, OAuth, SSH, GPG, CLI.
Communication is one of the most crucial aspects of a Software Development, no matter if you're a single developer or working in a team. It allows you to name semantic structures accordingly, both for yourself when internalizing solutions and reading software documentation, but most importantly, when conveying solutions to other people.
Table of Contents
General Network Terminology
We want to send information between different physical locations.
- Network: A network is a digital telecommunications network for sharing resources between computers of different sorts.
- Network Node: Network nodes are network computer devices that originate, route and terminate data communication.
- Network Address: A network address is an identifier for a network node.
- IP Address (Internet Protocol Address): an IP Address is a numerical label assigned to each device connected to a computer network that uses the Internet Protocol for communication. Identifies the location of your computer on a network.
- Internet: Internet is a public network utilizing the Internet Protocol.
- LAN (Local Area Network): A private/internal network.
- Host: a host is usually a computer that is connected to a computer network and has a unique identifier.
- Host Name: a hostname is a label that is assigned to a device connected to a computer network and that is used to identify the device in various forms of electronic communication, such as the World Wide Web. A hostname is the label assigned to a device (a host) on a network and is used to distinguish one device from another on a specific network or over the internet. The hostname for a computer on a home network may be something like new laptop, Guest-Desktop, or FamilyPC. www.google.com, www is the hostname, images.google.com, images is the hostname.
- Domain Name: a domain name is a unique string value, which is used to find resources on the internet. It is tied to an IP address entry in a DNS. www.google.com google is the domain name.
- DNS (Domain Name System): a DNS is a hierarchical and decentralized naming system for computers connected to to a network. It keeps a key-value list of sorts, with the key being the domain name and the values being various other information, most notably an IP address.
- FQDN (Fully Qualified Domain Name): a FQDN is a domain name that specifies its exact location in the tree hierarchy of the Domain Name System. It includes all the domain levels. Host name precedes domain name, domain name precedes top-level domain (dot-com). A FQDN includes (ordered from lowest level to the top-level domain)
- URI (Uniform Resource Identifier): URI is a web terminology and
- URL (Uniform Resource Locator): URL maps a key to an ip address
- Port: A
- FTP (File Transfer Protocol):
- NAT (Network Address Translation): NAT is a method of remapping one IP address space into another. Used to connect multiple computers to the internet for example. It usually runs inside a router, which acts as an agent between the internet and a local network. https://computer.howstuffworks.com/nat3.htm
- NAS (Network Attached Storage):
- UDP: https://computer.howstuffworks.com/web-server.htm
- TCP: https://computer.howstuffworks.com/web-server.htm
- Connection: Is some information that relates to setting up a pathway from one node to another
- Packet: The most basic data package that is sent over a network ()[https://www.digitalocean.com/community/tutorials/an-introduction-to-networking-terminology-interfaces-and-protocols#network-layers]. The packet often has a header which contains meta data like source, destination, timestamps, network hops, etc about the packet. The manin data of the packet is called the payload or body.
- Network Interface: Refers to a software interface to a networking hardware, like a network card.
HTTP (Hypertext Transfer Protocol)
We want to standardize communication, so that it is easier to process in-coming data.
HTTP is the protocol framework for describing how communication takes place between different entities, such as clients or servers. It deals with requests and responses. Some of the more important terminology:
- Headers: Each requests carries some headers, or meta data, which describes the requests
- Method: The methods are verbs that describe how you want to interact with the state, get/post/put/delete
- Payload: The payload denotes the data that is transported
- Body: Body
- Query: You can send data in multiple ways, a query is one of them. It is the part of the url that comes after
- Path: Path is the part of the URL that targets a specific endpoint.
Different ways we can send data:
- Query (parameter), ?key=value&key=value
- Path (parameter) /:param/
- learn called path param and query param, :id path, ?id query param
PKI (Public Key Infrastructure)
We want a central authority to manage digital certificates of users/devices and manage public-key encryption.
OAuth (Open Authentication)
We want a central authority to authenticate (verify you are who you say you are)
- Resource: The requested resource
- Resource Owner: the end user requesting access to a resource
- Client: The client which the resource owner is requesting the resource via
- Resource Server:
- Authorization Server:
- Authorization Code Flow: User logs in and requests
- Implicit Grant Flow: Passes access token directly without requesting an authorization code first
- Resource Owner Password Credentials Flow: User gives username/password directly
- Client Credential Flow: Service provides client id/secret to authorization server
SSL (Secure Sockets Layer)
We want the information that we send to point B to only be able to be read by point B, and not anyone else that's passing through the data from one node to another.
SSL is a security protocol for encrypting data between two points. Secure Sockets Layer (SSL) is a standard security technology for establishing an encrypted link between a server and a client—typically a web server (website) and a browser, or a mail server and a mail client (e.g., Outlook). However, the browser and the server need what is called an SSL Certificate to be able to establish a secure connection.
SSH (Secure Shell)
We want secure communication between ends.
PGP (Pretty Good Privacy)
We want to be able to encrypt, sign, decrypt data.
PGP (Pretty Good Privacy)
GPG (GNU Privacy Guard), implementation of PGP.