前端零基础入门到上班:【Day1】什么是前端?

在这里插入图片描述

本来打算开付费专栏 但是想起那句话 赠人玫瑰手留余香

        • 引言
        • 1. 什么是前端?
          • 1.1 前端的定义
          • 1.2 前端的三大核心技术
          • 1.3 前端框架和工具
        • 2. 什么是后端?
          • 2.1 后端的定义
          • 2.2 后端的组成要素
          • 2.3 后端框架和工具
        • 3. 前后端的区别
        • 4. 什么是前后端分离?
          • 4.1 前后端耦合与前后端分离
          • 4.2 前后端分离的好处
          • 4.3 前后端分离的实现方式
        • 5. 前后端分离的示例场景
        • 总结

引言

在现代 Web 开发中,前端开发后端开发是两大重要领域,它们共同决定了一个网站或应用的功能和用户体验。然而,前端和后端到底是什么?它们之间有什么区别?为什么现代开发越来越强调“前后端分离”?本篇将带你系统化地认识这些概念,帮助你构建扎实的前端开发基础。


1. 什么是前端?
1.1 前端的定义

在我们访问一个网站时,所有能够直接看到、点击、输入和互动的部分,都是由前端来实现的。前端主要是指用户可视界面的开发,包含页面结构、样式、动态效果和互动功能,最终目标是为用户提供友好且美观的交互界面。

1.2 前端的三大核心技术

前端开发的实现主要依赖以下三大核心技术:

  • HTML(HyperText Markup Language):前端开发的基础,用于定义网页的结构和内容。HTML 定义了网站的每个元素,如文本、图像、视频、链接等,让网页有“骨架”。

  • CSS(Cascading Style Sheets):用于网页的样式设计,定义 HTML 元素的显示方式,包括颜色、字体、布局等。CSS 让网页更加美观、有层次感。

  • JavaScript:赋予网页动态交互功能,使网页可以响应用户操作。比如按钮的点击、表单验证、图片轮播等功能都需要 JavaScript 支持。

这些技术的结合,让开发者可以构建功能丰富、互动性强的网页。随着前端技术的不断发展,HTML、CSS 和 JavaScript 的应用也越来越广泛和深入。

1.3 前端框架和工具

为了提升开发效率和用户体验,前端开发衍生出了一系列强大的框架和工具:

  • 框架和库:如 React、Vue.js、Angular 等,它们提供了大量预设的组件和功能,帮助开发者快速构建复杂的界面。

  • 预处理器和后处理器:如 Sass、Less(CSS 预处理器)、PostCSS 等,用于提升 CSS 的灵活性和可维护性。

  • 构建工具:如 Webpack、Parcel 等,用于打包、压缩和优化前端代码,提升网页加载速度。


2. 什么是后端?
2.1 后端的定义

与前端的用户交互界面不同,后端负责应用的业务逻辑、数据处理和管理。后端如同应用的“后台”,用户无法直接看到,但它负责网站或应用的核心功能和数据流转。后端的职责是确保数据存储安全、业务逻辑运行流畅,并根据请求将数据发送给前端。

2.2 后端的组成要素

后端主要由以下几个部分构成:

  • 服务器:为用户提供数据和计算资源的设备,托管网站和应用。服务器接收前端发送的请求,并根据业务逻辑返回相应的数据。

  • 数据库:用于存储和管理应用数据的系统,常见的数据库有 MySQL、MongoDB、PostgreSQL 等。数据库将结构化的或非结构化的数据保存下来,以便随时查询和更新。

  • 服务器端编程语言:用于编写业务逻辑代码,将应用的需求转化为功能,常见的后端语言有 Java、Python、PHP、Ruby、Node.js 等。

2.3 后端框架和工具

为了提升开发效率和代码的稳定性,后端开发者通常使用各种框架和工具:

  • 后端框架:如 Express(基于 Node.js)、Django(基于 Python)、Laravel(基于 PHP)等,这些框架提供了丰富的工具和功能,加速开发并提升代码的可维护性。

  • API:应用程序接口(API)是前后端沟通的桥梁,常见的 API 技术包括 RESTful API 和 GraphQL,通过这些接口,前端可以请求数据,而后端负责返回所需的数据。


3. 前后端的区别

了解了前端和后端的概念后,我们再来深入探讨一下两者的区别。前端和后端分别处理不同的任务,它们相辅相成,共同构成了一个完整的应用。

比较维度前端后端
目标提供美观、友好、流畅的用户界面处理业务逻辑,管理数据,确保功能正常运行
技术栈HTML、CSS、JavaScript、Vue.js、React 等Node.js、Java、Python、PHP、数据库(MySQL、MongoDB)等
执行环境用户的浏览器中服务器上
面向对象面向用户,提供良好的交互体验面向数据和逻辑,确保数据的正确性和安全性
关注点页面布局、样式、交互数据管理、业务逻辑
4. 什么是前后端分离?

在了解了前后端的区别后,现代 Web 开发中越来越强调的“前后端分离”概念就很容易理解了。前后端分离意味着前端和后端各自独立开发、部署和维护,两者通过 API 进行数据交换。这种开发模式带来了很多好处:

4.1 前后端耦合与前后端分离
  • 传统前后端耦合方式:早期的 Web 开发中,前端页面和后端逻辑紧密耦合在一起。每当用户请求一个页面,服务器会先处理业务逻辑,将数据填充到 HTML 模板中生成页面,再返回给浏览器。这种方式虽然简单,但页面每次请求都需要刷新,体验不佳。 浏览器的展示是由后端来决定的 其实就是服务器决定的。
    - 前后端分离模式:前后端分离的模式中,前端通过 AJAX、Fetch 或者 Axios 等方式调用后端提供的 API,获取数据并渲染页面。这样,前端的页面和后端的逻辑完全分离,只通过 API 进行数据交换,页面只需要局部刷新而无需整体加载。
4.2 前后端分离的好处
  • 提升用户体验:前端可以动态获取数据并局部刷新页面,减少了页面跳转和加载时间,用户体验更流畅。

  • 提高开发效率:前后端开发可以并行进行,前端专注界面和交互,后端专注数据和逻辑,减少了开发依赖性。

  • 便于技术升级和维护:前后端代码独立,便于维护和更新。前端可以随时切换技术框架,而后端则可以逐步优化,不会相互影响。

4.3 前后端分离的实现方式
  • RESTful API:通过 REST 风格的接口,前端可以按需请求资源,如 CRUD(增删查改)操作,非常适合大部分 Web 应用。

  • GraphQL:一种灵活的查询语言,让前端可以按需请求数据字段,减少了冗余数据的传输,适合复杂应用的数据请求。


5. 前后端分离的示例场景

为了更好理解前后端分离的应用场景,以下是一个电子商务网站的示例:

  • 前端:用户访问一个在线商城,页面的商品展示和购物车动态更新,这些交互由前端处理。用户点击商品、添加到购物车等操作会触发 JavaScript 动作,并通过 Axios 发送请求。

  • 后端:接收到请求后,后端服务器查询数据库,返回商品数据。后端还负责处理库存管理、支付逻辑等,确保商品库存与订单信息准确无误。

通过 API,前端可以迅速获取最新的商品信息,局部刷新商品列表,不需要刷新整个页面,提升了购物体验。
在这里插入图片描述

总结
  • 前端:定义页面结构、样式和交互,让用户看到并与应用互动的部分。
  • 后端:负责业务逻辑和数据处理,确保应用核心功能的正常运行。
  • 前后端分离:是一种现代化开发模式,通过 API 将前端与后端分离,提升开发效率和用户体验。

通过深入了解前端、后端及前后端分离的概念,希望你能对 Web 开发的整体架构有更系统的认识。接下来的学习中,我们将带你进一步了解前端开发的具体技术,实现从零到项目开发的顺利过渡!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/458648.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

院士领衔,瑞德磁电誓将中国红染遍磁电产业

【哔哥哔特导读】今天我们从广州来到淮北,参观一家由院士领衔创立的金属磁粉芯企业,看他们如何将中国红染遍磁电产业,一步步实现金属磁粉芯的国产替代。 想要成为一个领域的头部企业,技术实力与产能规模缺一不可,而瑞…

[翱捷]让SDK跑起来了

一&#xff0c;环境安排及验证 参照文档 <<ASR编译环境及编译步骤--3601.docx>> <<Windows环境搭建.docx>> <<ChildWatchSWUG_1221.doc>> 主要工具包括 ARM DS-5 V5.26.2 (64-bit)ActivePerl 5.28.1 Build 2801 (64-bit)msys2-x86_6…

摊牌了,创业失败了

“以为这个网红不会塌房&#xff0c;结果一觉醒来&#xff0c;天塌了……” ——某电商供应商 “这不是禁不住网上的各种诱惑吗&#xff0c;9月30日纵身入局&#xff0c;节假日几天不能买入&#xff0c;8号上班第一天我还看着钱数开心呢。结果今天……” ——一位投资失利&…

Python日志系统详解:Logging模块最佳实践

Python日志系统详解&#xff1a;Logging模块最佳实践 在开发Python应用程序时&#xff0c;日志记录是排查问题、监控系统状态、优化性能的重要手段。Python标准库中提供了强大的logging模块&#xff0c;使开发者可以轻松实现灵活的日志系统。本文将详细介绍Python的logging模块…

Java实现邮箱发送邮件添加定时任务(二)

上篇文章我们谈到邮件的发送&#xff0c;但是可以发现使用非常局限&#xff0c;这里我做了一个简单的修改&#xff0c;添加了定时发送功能&#xff0c;可以帮助我们处理很多繁琐的事 这里我写了一个简单的案例 1. 先在pom文件里面添加依赖 2.配置yml文件 3.写一个定时任务类…

python项目实战——多协程下载美女图片

协程 文章目录 协程协程的优劣势什么是IO密集型任务特点示例与 CPU 密集型任务的对比处理 I/O 密集型任务的方式总结 创建并使用协程asyncio模块 创建协程函数运行协程函数asyncio.run(main())aiohttp模块调用aiohttp模块步骤 aiofiles————协程异步函数遇到的问题一 await …

AI最新动态概览-2024年10月28日

1. 字节跳动加速欧洲布局&#xff0c;拟建AI研发中心 近日&#xff0c;有消息称字节跳动正积极筹备在欧洲设立AI研发中心&#xff0c;此举标志着该公司在全球技术版图上的又一重要扩张。随着人工智能技术的飞速发展&#xff0c;字节跳动正通过招兵买马&#xff0c;进一步巩固其…

Linux 进程优先级 进程切换

目录 优先级 概念 为什么优先级要限制在一定范围内 进程切换 方式 EIP寄存器(程序计数器) 进程在运行时会使用寄存器来保存临时数据 进程的上下文是什么&#xff1f; 进程的上下文保存到哪&#xff1f; 内核栈或专门的上下文结构也在内核空间&#xff1f;那为什么不直…

java 提示 避免用Apache Beanutils进行属性的copy。

避免用Apache Beanutils进行属性的copy。 Inspection info: 避免用Apache Beanutils进行属性的copy。 说明&#xff1a;Apache BeanUtils性能较差&#xff0c;可以使用其他方案比如Spring BeanUtils, Cglib BeanCopier。 TestObject a new TestObject(); TestObject b new Te…

2024 最新 frida技术栈 第一部分

目录 1.下载 2. 安装 2.1. 命令 3.基本使用 3.1 列出运行的APP 3.2 列出所有APP 3.3 杀死进程 4. frida hook 方法 4.1 frida客户端命令行的参数 4.2. Frida两种操作模式 4.3. Frida操作APP的两种方式 4.3.1. attach模式 4.3.2. spawn模式 4.3.3 转发端口启…

RabbitMQ的Overview Totals是空

一、问题描述 RabbitMQ 版本&#xff1a;4.0.2&#xff0c;Erlang 版本&#xff1a;26.2.5.4。 RabbitMQ 页面管理(rabbitmq_management)的 Overview > Totals 是空&#xff1a; 二、原因分析 RabbitMQ 的配置&#xff1a; management_agent.disable_metrics_collector…

Hive的数据存储格式

目录 一、前言 二、存储格式 2.1、文本格式&#xff08;TextFile&#xff09; 2.1.1、定义与特点 2.1.2、存储与压缩 2. 1.3、使用场景 2.2、行列式文件&#xff08;ORCFile&#xff09; 2.2.1、ORC的结构 2.2.2、ORC的数据类型 2.2.3、ORC的压缩格式 2.2.3、ORC存储…

LVGL移植教程(超详细)——基于GD32F303X系列MCU

版本&#xff1a;LVGL Kernel V8.3.0&#xff0c;运行压力测试Demo Stress首先放一张最终Stress Demo 运行图&#xff1a; 一、准备 1. GD32 Keil工程 准备任意一个屏幕可以正常显示的GD32工程&#xff1a; 2. LVGL源码 最新版现在已经是V9.2了&#xff0c;这里我选择了…

XQT_UI 组件|03 |加载组件 XQtLoading

XQtLoading 使用文档 简介 XQtLoading 是一个自定义的加载动画组件&#xff0c;旨在为用户提供可配置的旋转花瓣动画效果。它可以在应用程序中用于指示加载状态&#xff0c;提升用户体验。 特征 可配置性&#xff1a;用户可以根据需求调整旋转周期、缩放周期、最大/最小缩放…

Bi-LSTM-CRF实现中文命名实体识别工具(TensorFlow)

项目源码获取方式见文章末尾&#xff01; 回复暗号&#xff1a;13&#xff0c;免费获取600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 **《------往期经典推荐------》**项目名称 1.【MobileNetV2实现实时口罩检测tensorflow】 2.【卫星图像道路检测DeepLabV3P…

关于嵌入式学习的一些短浅经验

一、写在前面 感谢在 10.23&#xff0c;各位大佬对我进行的模拟面试&#xff0c;我也发现了我对知识的不熟练的部分&#xff0c;比如 IPC 方法和线程同步方法的知识。模拟面试第四期-已经拿到大厂 OFFER 的研究生大佬-LINUX 卷到飞起_哔哩哔哩_bilibili 然后&#xff0c;沈阳…

uniapp+uniCloud前端独立开发全栈项目Vue3版本学习路线,轻松开发H5、微信小程序、APP

概述 嗨&#xff0c;大家好&#xff0c;我是爱搞知识的咸虾米&#xff0c;这个学习路线是uniappuniCloud生态开发微信小程序、H5、APP等实战项目&#xff0c;从零基础开始到各种类型的项目案例&#xff0c;使用比较新的vue3语法糖版本&#xff0c;通过前端的技术可以轻松开发上…

微信小程序——消息订阅

首先用到的就是wx.requestSubscribeMessage接口。 注意&#xff1a;用户发生点击行为或者发起支付回调后&#xff0c;才可以调起订阅消息界面 requestSubscribeMessage() {uni.requestSubscribeMessage({tmplIds: [],//需要订阅的消息模板的id的集合&#xff0c;一次调用最多可…

Docker 常用命令全解析:提升对雷池社区版的使用经验

Docker 常用命令解析 Docker 是一个开源的容器化平台&#xff0c;允许开发者将应用及其依赖打包到一个可移植的容器中。以下是一些常用的 Docker 命令及其解析&#xff0c;帮助您更好地使用 Docker。 1. Docker 基础命令 查看 Docker 版本 docker --version查看 Docker 运行…

向量检索学习记录

1、Faiss Faiss是一个用于高效相似搜索和密集向量聚类的库&#xff1b;&#xff08;支持单个/多个GPU&#xff09;官方文档&#xff1a;Home facebookresearch/faiss Wiki GitHub 安装&#xff08;如果编译有问题&#xff0c;有些选项需要关下&#xff0c;比如GPU, Python&a…