web速览

web速览

1. 前端开发

  • 概述: 前端开发是构建网站用户界面的过程,主要关注网站的视觉效果和用户体验。又称为客户端

  • 技术栈

    • HTML(超文本标记语言):用于创建网页的结构和内容。
    • CSS(层叠样式表):用于样式和布局设计,包括颜色、字体、边距等。
    • JavaScript:用于实现网页的交互性和动态效果。
  • 前端框架

    • React:一个用于构建用户界面的 JavaScript 库,采用组件化设计。
    • Vue.js:一个渐进式的 JavaScript 框架,易于上手,适合小到中型项目。
    • Angular:一个全面的框架,适合大型应用开发,提供多种功能。

2. 后端开发

  • 概述:后端开发是指构建管理网站服务器、应用程序和数据库的部分,它直接处理数据存储和业务逻辑。又称服务端。

  • 技术栈

    • 编程语言:常用语言包括 Node.js(JavaScript)、Python、Java、PHP、Ruby 等。
    • 框架:如 Express.js(Node.js)、Django(Python)、Spring Boot(Java)。
  • 数据库

    • 关系型数据库:如 MySQL、PostgreSQL,使用表格结构。
    • 非关系型数据库:如 MongoDB、Cassandra,使用文档或键值对存储数据。

3. API(应用程序接口)

  • 概述:API 是允许不同软件组件之间进行通信和交互的接口。

类型

RESTful API
特点:
  • 资源导向:REST(Representational State Transfer)围绕资源进行设计,每个 URL 代表一个资源。

  • HTTP 方法

    • GET:获取资源(读取)。
    • POST:创建新资源(添加)。
    • PUT:更新现有资源(替换)。
    • DELETE:删除资源。
  • 无状态性:每个请求都是独立的,服务器不存储客户端的状态信息。

优点:
  • 易于理解和实现。
  • 广泛支持,几乎所有编程语言都有库来构建 RESTful API。
  • 具有良好的缓存机制。
缺点:
  • 查询复杂时,可能需要多个请求(如,获取资源及相关数据)。
  • 不够灵活,客户端需要确切知道 API 的结构。
GraphQL
特点:
  • 查询语言:允许客户端描述所需数据的结构,仅返回请求的数据。
  • 单个端点:与 REST API 不同,GraphQL 通常通过一个端点提供服务。
优点:
  • 灵活性高,客户端能精确请求所需数据,避免过载和不足。
  • 有助于减少 API 调用次数,提升性能。
  • 强类型系统,提供良好的自我文档功能(如使用 GraphiQL 工具可以交互查询)。
缺点:
  • 学习曲线较陡,需要了解 GraphQL 的语法和最佳实践。
  • 实现上可能更复杂,尤其是在处理缓存和批处理请求时。

4. Web 服务器

  • 概述:Web 服务器是处理来自浏览器请求的程序,并向用户反馈网页内容,主要用于托管网站。

  • 常见的 Web 服务器

    • Apache:一个功能强大的开源服务器,支持多种模块和配置选项。
    • Nginx:以高并发和低内存消耗著称,常用作反向代理和负载均衡器。
    • Tomcat:专门用于运行 Java web 应用的容器。

5. 安全性

HTTPS

  • 概述:HTTPS(安全超文本传输协议)是通过 SSL/TLS(安全套接层/传输层安全协议)加密的 HTTP。它的主要目的是保护数据在传输过程中的安全性。
  • 工作原理
    • 使用公钥和私钥进行加密,确保数据在传输过程中不会被窃听或篡改。
    • 用户与 Web 服务器之间建立安全的连接,通常可以通过浏览器中的小锁图标来验证。
  • 好处
    • 提高用户信任度(尤其是在线购物或敏感信息输入时)。
    • SEO 方面有益:搜索引擎(如 Google)更喜欢 HTTPS 网站。

身份验证和授权

  • 身份验证:确认用户的身份,确保访问者是他们所声称的那个人。

    • 常用方式
      • OAuth:一种开放标准,允许用户在不分享用户名和密码的情况下进行身份验证,常用于第三方应用授权。

      • JWT(JSON Web Token):一种紧凑的,URL 安全的方式,用于表示请求之间传输的信息,支持无状态认证。

          JWT 的工作流程用户登录:用户通过用户名和密码登录系统。生成 JWT:服务器验证用户的凭据,生成 JWT,并将其返回给用户。客户端存储 JWT:客户端(如网页应用或移动应用)将 JWT 存储在本地存储或 Cookies 中。请求 API:在后续的请求中,用户将 JWT 作为 HTTP 请求头(通常为 Authorization: Bearer <token>)发送到服务器。服务器验证 JWT:服务器接收到请求后,解码并验证 JWT的有效性。如果令牌有效且未过期,服务器根据载荷中的信息授权用户访问请求的资源。
        
  • 授权:确定已验证用户是否具有访问特定资源的权限,确保用户只能查看和操作他们有权限的数据。

防火墙和 DDoS 防护

  • 防火墙
    • 概述:防火墙是网络安全设备,用于控制进入和离开网络的数据流,防止未经授权的访问。
    • 工作原理:通过设置规则允许或阻止特定类型的流量,保护内部网络的安全。
  • DDoS(分布式拒绝服务)攻击防护
    • 概述:DDoS 攻击是通过大量请求使目标服务器过载,导致正常用户无法访问。
    • 防护措施
      • 使用流量清洗服务来识别并过滤恶意流量。
      • 部署负载均衡,通过分散流量来减轻攻击的影响。
      • 设置速率限制,限制单个用户的请求速率,从而减轻攻击到网站的影响。

6. Web 性能优化

  • 资源压缩:减少 CSS、JS 和图片文件的大小,提高加载速度。

缓存机制

1. 浏览器缓存:

  • 浏览器缓存允许将静态资源(如图片、JavaScript 和 CSS 文件)存储在用户的浏览器中。这样,当用户再次访问网站时,浏览器可以直接从缓存中加载资源,而不是重新向服务器请求,从而减少加载时间和服务器负担。
  • 实现方法:
    • 使用 HTTP 头部(如 Cache-ControlExpires)设置资源的过期时间。
    • 确保版本号的管理,例如通过在资源 URL 中添加版本号或哈希值来强制重新加载更新的资源。

2. CDN 缓存:

  • 内容分发网络(CDN)是在多个地理位置部署的服务器网络。当用户请求某个资源时,CDN 会把请求转发给离用户最近的服务器,这样可以显著提高加载速度。
  • 实现方法:
    • 将静态资源上传到 CDN,设置相应的缓存策略,使 CDN 节点能缓存这些资源。
    • 利用 CDN 提供的缓存失效机制,当资源更新时,可以手动或自动使 Cache 失效。

懒加载

懒加载是一种延迟加载的策略,主要用于提高页面的性能和用户体验。懒加载只有在用户滚动到图像或内容时,才会加载这些资源,从而减少初始页面加载的时间。

实现方法:

  1. 图像懒加载:

    • 使用 JavaScript 或数据属性(如 data-src),当元素进入视口时,将实际的图像 URL 设置为 src

      <img data-src="image.jpg" class="lazy" alt="Image"/>
      
      const lazyLoad = () => {const images = document.querySelectorAll('img.lazy');images.forEach(img => {if (img.getBoundingClientRect().top < window.innerHeight) {img.src = img.dataset.src;img.classList.remove('lazy');}});
      };
      window.addEventListener('scroll', lazyLoad);
      
  2. 内容懒加载:

    • 对于较大的文档或内容块,可以在用户滚动到一定位置时异步加载更多内容。
    • 这可以通过监听滚动事件或使用 Intersection Observer API 来实现。

7. 响应式设计

  • 概述:响应式设计是通过 CSS 媒体查询,确保网站在各种设备和屏幕尺寸上的良好呈现。

  • 工具

    • CSS GridFlexbox:用于创建灵活布局。
    • Bootstrap:流行的前端框架,提供预设样式和组件,方便快速开发。

8. DevOps 和持续集成

  • 概述:DevOps 是开发与运维的结合,旨在加速软件开发和交付。

  • 工具

    • Docker:用于创建和管理容器,简化应用的部署。
    • CI/CD 工具:如 Jenkins、GitLab CI,帮助实现自动化测试和部署。

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

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

相关文章

PHP常见正则表达式

一、校验数字的表达式 1 数字&#xff1a;^[0-9]*$ 2 n位的数字&#xff1a;^\d{n}$ 3 至少n位的数字&#xff1a;^\d{n,}$ 4 m-n位的数字&#xff1a;^\d{m,n}$ 5 零和非零开头的数字&#xff1a;^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字&#xff1a;^([1-9][0-…

0164__【GNU】gcc -O编译选项 -Og -O0 -O1 -O2 -O3 -Os

【GNU】gcc -O编译选项 -Og -O0 -O1 -O2 -O3 -Os_gcc -o0-CSDN博客

【Rust自学】14.4. 发布crate到crates.io

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 14.4.1. 创建并设置crates.io账号 在发布任何 crate 之前&#xff0c;你需要在 crates.io并…

青少年编程与数学 02-007 PostgreSQL数据库应用 15课题、备份与还原

青少年编程与数学 02-007 PostgreSQL数据库应用 15课题、备份与还原 一、数据库备份与还原二、PostgreSQL中操作数据库的备份与还原1. 使用pg_dump进行逻辑备份2. 使用pg_restore进行逻辑还原3. 使用pg_basebackup进行物理备份4. 还原物理备份注意事项 三、自动备份1. 使用pg_d…

数据结构——实验八·学生管理系统

嗨~~欢迎来到Tubishu的博客&#x1f338;如果你也是一名在校大学生&#xff0c;正在寻找各种编程资源&#xff0c;那么你就来对地方啦&#x1f31f; Tubishu是一名计算机本科生&#xff0c;会不定期整理和分享学习中的优质资源&#xff0c;希望能为你的编程之路添砖加瓦⭐&…

IBM湖仓一体与向量数据库:访问MinIO控制台(Accessing the MinIO console)

_1、从密钥中复制S3凭证并保存 &#xff08;Copy the S3 credentials from the secret and save it &#xff09; oc extract secret/ibm-lh-config-secret -n ${PROJECT_CPD_INST_OPERANDS} --to- --keysenv.properties | grep -E "LH_S3_ACCESS_KEY|LH_S3_SECRET_KEY&q…

STM32 低功耗设计:从原理到实现的详细介绍

在现代嵌入式系统中&#xff0c;尤其是在需要长时间工作且电池供电的设备中&#xff0c;低功耗设计至关重要。STM32作为一种流行的微控制器系列&#xff0c;广泛应用于便携设备、传感器网络、可穿戴设备等领域&#xff0c;提供了多种低功耗模式来延长电池使用时间并优化整体能效…

View Shadcn UI 2025.1.2 发布公告:全新跑马灯组件与多项优化更新

亲爱的开发者们&#xff1a; 我们很高兴地宣布 View Shadcn UI 2025.1.2 版本正式发布&#xff01;本次更新带来了全新的跑马灯组件&#xff0c;并对多个现有组件进行了功能增强和问题修复。 &#x1f680; 重要链接 GitHub 仓库&#xff1a;https://github.com/devlive-comm…

Ragas-RAG能力评测

Ragas是一个框架&#xff0c;它可以帮助你从不同的方面评估你的问答&#xff08;QA&#xff09;流程。它为你提供了一些指标来评估你的问答系统的不同方面&#xff0c;具体包括&#xff1a; 评估检索&#xff08;context&#xff09;的指标&#xff1a;提供了上下文相关性&…

“深入浅出”系列之数通篇:(5)TCP的三次握手和四次挥手

TCP&#xff08;传输控制协议&#xff09;的三次握手和四次挥手是TCP连接建立和释放的过程。 一、TCP三次握手 TCP三次握手是为了建立可靠的连接&#xff0c;确保客户端和服务器之间的通信能力。具体过程如下&#xff1a; 第一次握手&#xff1a;客户端向服务器发送一个带有…

基于ESP32-IDF驱动GPIO输出控制LED

基于ESP32-IDF驱动GPIO输出控制LED 文章目录 基于ESP32-IDF驱动GPIO输出控制LED一、点亮LED3.1 LED电路3.2 配置GPIO函数gpio_config()原型和头文件3.3 设置GPIO引脚电平状态函数gpio_set_level()原型和头文件3.4 代码实现并编译烧录 一、点亮LED 3.1 LED电路 可以看到&#x…

【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等

【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等 目录 【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等 优势 适用场景 项目结构 关键代码 优势 消除 switch&#xff1a;将分支逻辑分散到独立的策略类中。 开闭原则&#xff1a;新增类型只需添加新的 TypeHa…

使用ffmpeg提高mp4压缩比,减小文件体积【windows+ffmpeg+batch脚本】

文章目录 关于前情提要FFmpeg是什么使用脚本运行FFmpeg首先&#xff0c;下载ffmpeg.exe然后在视频相同位置写一个bat脚本运行压缩脚本 关于 个人博客&#xff0c;里面偶尔更新&#xff0c;最近比较忙。发一些总结的帖子和思考。 江湖有缘相见&#x1f91d;。如果读者想和我交…

# [Unity] [游戏开发]基础协程应用与实现详解

协程(Coroutine)是Unity中一种用于处理复杂定时逻辑的非常有用的工具。通过协程,可以轻松地在多个帧之间分步执行任务,而不阻塞主线程。本文将介绍如何在Unity中使用协程,并通过简单的实例展示协程的基本应用。 1. 协程的基础概念 在Unity中,协程是通过IEnumerator函数…

Kivy App开发之UX控件Bubble气泡

kivy提供了一个提示气泡的小控件Bubble,使用时可以指定气泡箭头的方向以及显示的图像,还可以作为容器添加其他小控件。 常用属性如下 属性说明orientation气泡内子项的排序方式,可设置为vertical或horizontal,默认horizontalarrow_pos箭头相对于气泡的位置,可设置为left_…

Vue3初学之Element Plus Dialog对话框,Message组件,MessageBox组件

Dialog的使用&#xff1a; 控制弹窗的显示和隐藏 <template><div><el-button click"dialogVisible true">打开弹窗</el-button><el-dialogv-model"dialogVisible"title"提示"width"30%":before-close&qu…

某大厂一面:Java 构造器是否可以被重写

在 Java 中&#xff0c;构造器&#xff08;Constructor&#xff09;不能被重写&#xff08;Override&#xff09;。这是因为构造器是用于创建对象并初始化对象状态的特殊方法&#xff0c;它与类的实例化过程紧密相关。以下是对这一问题的详细解释&#xff1a; 1. 构造器的特点 …

自然语言处理(NLP)-总览图学习

文章目录 自然语言处理&#xff08;NLP&#xff09;-总览图学习1.一张总览图的学习1. 语音学&#xff08;Phonology&#xff09;2. 形态学&#xff08;Morphology&#xff09;3. 句法学&#xff08;Syntax&#xff09;4. 语义学&#xff08;Semantics&#xff09;5. 推理&#…

机器学习 vs 深度学习

目录 一、机器学习 1、实现原理 2、实施方法 二、深度学习 1、与机器学习的联系与区别 2、神经网络的历史发展 3、神经网络的基本概念 一、机器学习 1、实现原理 训练&#xff08;归纳&#xff09;和预测&#xff08;演绎&#xff09; 归纳: 从具体案例中抽象一般规律…

谈谈RTMP|RTSP播放器视频view垂直|水平反转和旋转设计

技术背景 我们在做RTMP|RTSP播放器的时候&#xff0c;有这样的技术诉求&#xff0c;有的摄像头出来的数据是有角度偏差的&#xff0c;比如“装倒了”&#xff0c;或者&#xff0c;图像存在上下或者左右反转&#xff0c;这时候&#xff0c;就需要播放器能做响应的处理&#xff…