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,一经查实,立即删除!

相关文章

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

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

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

嗨~~欢迎来到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…

Ragas-RAG能力评测

Ragas是一个框架&#xff0c;它可以帮助你从不同的方面评估你的问答&#xff08;QA&#xff09;流程。它为你提供了一些指标来评估你的问答系统的不同方面&#xff0c;具体包括&#xff1a; 评估检索&#xff08;context&#xff09;的指标&#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…

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

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

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…

自然语言处理(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…

论文阅读--Qwen22.5技术报告

Qwen2 1 引言 所有模型都是在超过7 trillion token&#xff08;7万亿&#xff09;的高质量、大规模数据集上预训练的 2 Tokenizer & Model 2.1 Tokenizer 沿用Qwen&#xff08;Bai等人&#xff0c;2023a&#xff09;的做法&#xff0c;我们采用了基于字节级字节对编码…

FPGA中场战事

2023年10月3日,英特尔宣布由桑德拉里维拉(Sandra Rivera)担任“分拆”后独立运营的可编程事业部首席执行官。 从数据中心和人工智能(DCAI)部门总经理,转身为执掌该业务的CEO,对她取得像AMD掌门人苏姿丰博士类似的成功,无疑抱以厚望。 十年前,英特尔花费167亿美元真金白银…

【jmeter】下载及使用教程【mac】

1.安装java 打开 Java 官方下载网站https://www.oracle.com/java/technologies/downloads/选择您想要下载的 Java 版本&#xff0c;下载以 .dmg 结尾的安装包&#xff0c;注意 JMeter 需要 Java 8下载后打开安装包点击“安装”按钮即可 2.下载jmeter 打开 Apache JMeter 官方…

postman请求参数化

postman界面介绍 一、使用环境变量(Environment Variables)进行参数化 1、在请求中使用环境变量 在请求的url、请求头(Headers)、请求体(Body)等部分都可以使用环境变量。 URL 部分示例 点击 Postman 界面右上角的 “眼睛” 图标(Environment Quick Look)打开环境管理…

2024年博客之星年度评选|第一步——创作影响力评审入围Top300名单 | 博客之星陪跑指南

2024年博客之星年度评选&#xff5c;第一步——创作影响力评审入围Top300名单 | 博客之星陪跑指南 2024年博客之星年度评选正在如火如荼地进行中&#xff01;作为博客圈最具影响力的评选活动之一&#xff0c;今年的评选吸引了众多优秀博主的参与。现在&#xff0c;距离Top300入…

阻燃高温尼龙行业:市场潜力巨大,引领材料科学新变革

在当今快速发展的工业和材料科学领域&#xff0c;阻燃高温尼龙作为一种兼具卓越防火性能和高温稳定性的新型材料&#xff0c;正逐步成为多个领域的首选材料。随着全球对安全性能要求的提高和技术的不断创新&#xff0c;阻燃高温尼龙市场呈现出快速增长的态势&#xff0c;展现出…

HTML中的`<!DOCTYPE html>`是什么意思?

诸神缄默不语-个人CSDN博文目录 在学习HTML时&#xff0c;我们经常会看到HTML文档的开头出现<!DOCTYPE html>&#xff0c;它是HTML文件的第一行。很多初学者可能会疑惑&#xff0c;为什么需要这行代码&#xff1f;它到底有什么作用呢&#xff1f;在这篇文章中&#xff0…

系统学习算法:专题五 位运算

位运算总结&#xff08;默认学过位操作符的知识&#xff09;&#xff1a; 1. 这六种就是常见的位运算符&#xff0c;无进位相加就是在二进制中&#xff0c;两个数的某一位1和1可以进位&#xff0c;但是异或就不进位&#xff0c;相加后为0&#xff0c;跟相同为0&#xff0c;相异…

JVM参数-NativeMemoryTracking

实际开发场景中应该有发现Java应用程序会消耗比设置-Xms和-Xmx更多的内存&#xff0c;究其原因其实是因为JVM中除了大家熟知的堆内存外,还有所谓的非堆内存&#xff08;Non-Heap Memory&#xff09;,详细来看,非堆内存包括方法区和Java虚拟机内部做处理或优化所需的内存。 从图…

【PVE】Proxmox VE8.0+创建LXC容器安装docker

为了不影响PVE宿主机&#xff0c;通常使用套娃的形式安装Docker容器&#xff0c;再安装相关docker应用。首先在CT模板中创建 Linux 容器&#xff0c;推荐使用Debian。开启ssh登录&#xff0c;修改debian配置&#xff0c;安装docker 一、创建 LXC 容器 1、CT模板下载 点击“模…