Frontend and backend. In software development, frontend refers to the presentation layer that users interact with, while backend involves the data management and processing behind the scenes. In the client–server model, the client is usually considered the frontend, handling user-facing tasks, and the server is the backend, managing data and logic. Some presentation tasks may also be performed by the server.

Introduction 
In software architecture, there may be many layers between the hardware and end user. The front is an abstraction, simplifying the underlying component by providing a user-friendly interface, while the back usually handles data storage and business logic.

Examples 

E-commerce Website: The frontend is the user interface (e.g., product pages, search bar), while the backend processes payments and updates inventory.

Banking App: The frontend displays account balances, while the backend handles secure transactions and updates records.

Social Media Platform: The frontend shows the news feed, while the backend stores posts and manages notifications.

In telecommunication, the front can be considered a device or service, while the back is the infrastructure that supports provision of service.

A rule of thumb is that the client-side (or "frontend") is any component manipulated by the user. The server-side (or "backend") code usually resides on the server, often far removed physically from the user.

Software definitions 

In content management systems, the terms frontend and backend may refer to the end-user facing views of the CMS and the administrative views, respectively.

In speech synthesis, the frontend refers to the part of the synthesis system that converts the input text into a symbolic phonetic representation, and the backend converts the symbolic phonetic representation into actual sounds.

In compilers, the frontend translates a computer programming source code into an intermediate representation, and the backend works with the intermediate representation to produce code in a computer output language. The backend usually optimizes to produce code that runs faster. The frontend/backend distinction can separate the parser section that deals with source code and the backend that generates code and optimizes. Some designs, such as GCC, offer choices between multiple frontends (parsing different source languages) or backends (generating code for different target processors).

Some graphical user interface (GUI) applications running in a desktop environment are implemented as a thin frontend for underlying command-line interface (CLI) programs, to save the user from learning the special terminology and memorizing the commands.

Web development as an example 
Another way to understand the difference between the two is to understand the knowledge required of a frontend vs. a backend software developer. The list below focuses on web development as an example.

Both 
 Version control tools such as Git, Mercurial, or Subversion
 File transfer tools and protocols such as FTP or rsync

Frontend focused 
 Markup and web languages such as HTML, CSS, JavaScript, and ancillary libraries commonly used in those languages such as Sass or jQuery
 Asynchronous request handling and AJAX
 Single-page applications (with frameworks like React, Angular or Vue.js)
 Web performance (largest contentful paint, time to interactive, 60 FPS animations and interactions, memory usage, etc.)
 Responsive web design
 Cross-browser compatibility issues and workarounds
 End-to-end testing with a headless browser
 Build automation to transform and bundle JavaScript files, reduce image sizes and other processes using tools such as Webpack and Gulp.js  
 Search engine optimization
 Accessibility concerns
 Basic usage of image editing tools such as GIMP or Photoshop
 User Interface

Backend focused 
 Scripting languages like PHP, Python, Ruby, Perl, Node.js, or Compiled languages like C#, Java or Go
 Data access layer
 Business logic
 Database administration
 Scalability
 High availability
 Security concerns, authentication and authorization
 Software Architecture
 Data transformation
 Backup methods and software
Note that both positions, despite possibly working on one product, have a very distinct set of skills.

API 

The frontend communicates with backend through an API. In the case of web and mobile frontends, the API is often based on HTTP request/response. The API is sometimes designed using the "Backend for Frontend" (BFF) pattern, that serves responses to ease the processing on frontend side.

Hardware definitions 
In network computing, frontend can refer to any hardware that optimizes or protects network traffic. It is called application front-end hardware because it is placed on the network's outward-facing frontend or boundary. Network traffic passes through the front-end hardware before entering the network.

In processor design, frontend design would be the initial description of the behavior of a circuit in a hardware description language such as Verilog, while backend design would be the process of mapping that behavior to physical transistors on a die.

See also

References 

Software architecture
Software engineering terminology