Apache Web Server, Apache HTTP Server
The Apache HTTP Server is an open source software web server. Apache is run on Unix-like operating systems, and was developed for use on Linux.
Application Programming Interface
Defines how different software applications can communicate with each other. A software-to-software interface, not a user interface. A software company releases its API to the public so that other software developers can design products that are powered by its service.
Camel case (camelCase), also known as Camel Caps or more formally as Medial Capitals is the practice of writing compound words or phrases such that each word or abbreviation in the middle of the phrase begins with a capital letter, with no intervening spaces or punctuation. Examples include
Command Line Interface
A CLI is a type of human-computer interface (i.e., a way for humans to interact with computers) that relies solely on textual input and output.
Domain Name System
The Domain Name System (DNS) is the Internet’s equivalent of a phone book. The directory matches human-readable domain names like
wattswork.com to their machine-readable IP addresses like
126.96.36.199. The full DNS system is composed of many networks around the world run on servers owned by a number of public and private organizations who maintain the top-level DNS service for free. Top-level domain names point to private servers called Name Servers which host the actual websites.
Document Object Model
Don’t Repeat Yourself
In software engineering DRY is a principle of software development aimed at reducing repetition of software patterns, replacing it with abstractions, or repetition of the same data, using data normalization to avoid redundancy.
- In computer science falsy can mean “something that is equivalent to false”.
- falsy can also be spelled falsey.
- The opposite of falsy is truthy.
Hostnames are human-readable labels that correspond to the network address of a computer connected to a network.
HyperText Transfer Protocol
The HyperText Transfer Protocol is the standard transmission protocol used on the World Wide Web. The Apache web server implements version 1.1 of the protocol, referred to as HTTP/1.1 and defined by RFC 2616.
The Internet is the name for the system by which independent networks can communicate with each other. The massive networking infrastructure operates using the Internet Protocol (IP)
The Internet of Things (IoT) is the extension of Internet connectivity into physical devices and everyday objects. Embedded with electronics, Internet connectivity, and other forms of hardware (such as sensors), these devices can communicate and interact with others over the Internet, and they can be remotely monitored and controlled.
IP is the communications protocol underlying the Internet. The Internet Protocol allows large, geographically diverse networks of computers to communicate with each other quickly and economically over a variety of physical links.
Internet Protocol Address
An IP address is a numeric representation of a computer’s location on a network. IP addresses look something like 188.8.131.52. Computers on the Internet use IP addresses to route traffic and establish connections among themselves but people generally use the human-friendly names made possible by the Domain Name System. IP addresses can be static or dynamic.
The central module of an operating system. It is the part of the operating system that loads first, and it remains in main memory. Because it stays in memory, it is important for the kernel to be as small as possible while still providing all the essential services required by other parts of the operating system and applications. Typically, the kernel is responsible for memory management, process and task management, and disk management.
Keep it Simple Stupid is a design principle noted by Kelly Johnson, lead engineer on the Blackbird spy planes in 1960. The KISS principle states that most systems work best if they are kept simple rather than made complicated; therefore simplicity should be a key goal in design and unnecessary complexity should be avoided.
Lambda functions are scripts run by an event-driven, serverless computing platform provided by Amazon Web Services. AWS Lambda is a computing service that runs code in response to events and automatically manages the computing resources required by that code. Lambda functions can be written in Node, Python, Ruby, Java, Go, and .NET.
Linux, Apache, MySQL and PHP
LAMP is an open-source Web development platform, also called a Web stack, that uses Linux as the operating system, Apache as the Web server, MySQL as the RDBMS and PHP as the object-oriented scripting language. Perl or Python is often substituted for PHP.
The key to the idea behind LAMP, a term originally coined by Michael Kunze in the German magazine c’t in 1998, is the use of these items together. Although not actually designed to work together, these open source software alternatives are readily and freely available as each of the components in the LAMP stack is an example of Free or Open Source Software (FOSS).
LAMP has become a de facto development standard. Today, the products that make up the LAMP stack are included by default in nearly all Linux distributions, and together they make a powerful web application platform.
The original LAMP acronym has spawned a number of other, related acronyms that capitalize on the main focus of the original combination of technologies to provide feature rich Web sites. Some of these related Web stacks include LAPP, MAMP, and BAMP.
Open source computer operating system based on Unix. Mostly used on servers and web servers.
Pronounced lee-nucks or lih-nucks. A freely-distributable open source operating system that runs on a number of hardware platforms. The Linux kernel was developed mainly by Linus Torvalds and it is based on Unix. Because it’s free, and because it runs on many platforms, including PCs and Macintoshes, Linux has become an extremely popular alternative to proprietary operating systems.
Operating System (OS)
The operating system is the most important program that runs on a computer. Every general-purpose computer must have an operating system to run other programs. Operating systems perform basic tasks, such as recognizing input from the keyboard, sending output to the display screen, keeping track of files and directories on the disk, and controlling peripheral devices such as disk drives and printers.
For large systems, the operating system has even greater responsibilities and powers. It is like a traffic cop — it makes sure that different programs and users running at the same time do not interfere with each other. The operating system is also responsible for security, ensuring that unauthorized users do not access the system.
A namespace is a declarative region that provides a scope to the identifiers (the names of types, functions, variables, etc) inside it. Namespaces are used to organize code into logical groups and to prevent name collisions that can occur especially when your code base includes multiple libraries.
A naming convention is a convention (generally agreed scheme) for naming things. Conventions differ in their intents, which can include useful information to be deduced from the naming structure.
OSI Networking Model
Open Systems Interconnection networking model (OSI Model)
The OSI model is a conceptual framework created to better understand complex digital communication interactions. The model partitions a communication system into 7 abstraction layers.
The underlying hardware or software for a system. For example, the platform might be an Intel 80486 processor running DOS Version 6.0. The platform could also be UNIX machines on an Ethernet network.
The platform defines a standard around which a system can be developed. Once the platform has been defined, software developers can produce appropriate software and managers can purchase appropriate hardware and applications. The term is often used as a synonym of operating system.
Proxy servers sit between a client program (typically a Web browser) and an external server (typically another server on the Web) to filter requests, improve performance, and share connections.
Software as a Service
Software as a service (SaaS), sometimes referred to as “on-demand software” is a software distribution model in which a third-party provider hosts applications and makes them available to customers over the Internet, with access often licensed on a subscription basis. SaaS is one of three main categories of cloud computing, alongside infrastructure as a service IaaS and platform as a service PaaS. Microsoft formerly referred to SaaS as “software plus services”.
Server Application Programming Interface
SAPI is the mechanism that controls the interaction between the “outside world” and the PHP engine. So, you would always want to use it. In fact, you cannot avoid using it without a lot of effort since even CLI is considered a SAPI.
Systems Development Life Cycle
The systems development life cycle (SDLC), also referred to as the application development life-cycle, is a term used in systems engineering, information systems and software engineering to describe a process for planning, creating, testing, and deploying an information system. The systems development lifecycle concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: analysis, design, development and testing, implementation, documentation, and evaluation.
A server is a computer that delivers (serves) data. A web server is a computer that delivers data to the web over a network. A Web server needs an IP address and software like Apache to use HTTP to exchange data on a network. A server can also be called a host or a node.
Snake case (or snake_case) is the practice of writing compound words or phrases in which the elements are separated with one underscore character (_) and no spaces, with each element’s initial letter usually lowercased within the compound and the first letter either upper- or lowercase—as in “foo_bar” and “Hello_world”.
In object-oriented computer programming, the term SOLID is a mnemonic acronym for five design principles intended to make software designs more understandable, flexible and maintainable:
- Single Responsibility
A class or a method should have only a single responsibility.
Software entities should be open for extension, but closed for modification.
- Liskov substitution
Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
- Interface segregation
Many client-specific interfaces are better than one general-purpose interface.
- Dependency inversion
One should depend upon abstractions, not concretions.
A collection of software usually comprised of an operating system, web server, database server, and programming language. One of the most most popular web stacks is LAMP (Linux, Apache, MySQL, PhP).
Transmission Control Protocol
The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite.
- In computer science truthy can mean “something that is equivalent to true”.
- The opposite of truthy is falsy.
Uniform Resource Identifier
A URI identifies, but does not necessarily locate an unique abstract or physical resource on a computer network. Examples of a URI could be as basic as a file name like
my_image.jpg or as complex as a URL. URL is a subset of the URI specification formally defined by RFC 2396. URLs, URNs, and URCs are all types of URI.
Uniform Resource Locator
A URL, also called a link or a web address is the global address of a document or other resource on the World Wide Web.
All URLs are URIs. URL is a subset of the URI spec. URIs identify and URLs locate; however, locators are also identifiers, so every URL is also a URI, but there are URIs which are not URLs.
- The first part of a URL is called a scheme or protocol and it indicates what protocol to use. Examples are HTTP, HTTPS, and FTP.
- The second part of a URL (everything after the ‘://’) is called a hostname or a resource name and is specified by the IP address or it’s domain name where the resource is located.
- The third part of a URL (everything after the hostname) is called a path and is composed of segments separated by slashes.
The Uniform Resource Locator (URL) was developed by Tim Berners-Lee in 1994 and the Internet Engineering Task Force (IETF) URI working group. The URL format is specified in RFC 1738 Uniform Resource Locators (URL), and is a subset of URI specified in RFC 2396.
Serving multiple websites using a single instance of Apache. IP virtual hosting differentiates between websites based on their IP address, while name-based virtual hosting uses only the name of the host and can therefore host many sites on the same IP address.
The term Web service (WS) is either:
- (generic) a service offered by an electronic device to another electronic device, communicating with each other via the World Wide Web, or
- (specific) a Web service implemented in the particular technology or brand, e.g W3C Web Services.
In a Web service, the Web technology such as HTTP—originally designed for human-to-machine communication—is utilized for machine-to-machine communication, more specifically for transferring machine-readable file formats such as XML and JSON.
World Wide Web
The World Wide Web, or simply Web, is a way of accessing information over the medium of the Internet. It is an information-sharing model that is built on top of the Internet. The Web uses the HTTP protocol, only one of the languages spoken over the Internet, to transmit data. Web services, which use HTTP to allow applications to communicate in order to exchange business logic, use the the Web to share information. The Web also utilizes browsers, such as Internet Explorer or Firefox, to access Web documents called Web pages that are linked to each other via hyperlinks. Web documents also contain graphics, sounds, text and video.
The Web is just one of the ways that information can be disseminated over the Internet. The Internet, not the Web, is also used for e-mail, which relies on SMTP, Usenet news groups, instant messaging and FTP. So the Web is just a portion of the Internet, albeit a large portion, but the two terms are not synonymous and should not be confused.
YAML Ain’t Markup Language
YAML is a human-readable data-serialization language. It is commonly used for configuration files, but could be used in many applications where data is being stored (e.g. debugging output) or transmitted (e.g. document headers).