给web开发零基础小白的简明入门教程

1.网页三大件:HTML、CSS、JS

  • HTML(HyperText Markup Language超文本标记语言):构成网页的结构,结构由元素(标签)组成。

  • CSS(Cascading Style Sheets层叠样式表):控制网页中的元素的样式,标签名控制、id控制、class控制。

  • JS(JavaScript网页脚本):动态控制网页元素、数据等,发送与接收请求、计算等。

2.什么是前后端分离?

在很久很久以前,互联网攻城狮们通过这么一种方式来产生页面:

用户发送请求,服务器返回一个html文件,里面包含了html、css、js,如果要访问一个新的网页,就需要将整个页面刷新,重新请求服务器返回一个html文件。

但是随着互联网的发展,这种方式表现出了一些劣势:

  • 资源浪费:重复的资源请求。
  • 性能瓶颈:每次返回的东西太大了,占用网络带宽。
  • 不方便维护:需要兼顾业务逻辑与视图。
  • 交互性差:不能动态的加载一部分的数据,只能刷新整个网页。

于是呢,工程师们想出了前后端分离的方法(本质上是一种纵向分布式),让前端与后端各司其职:

  • 前端管视图,需要数据就去问后端;
  • 后端管业务逻辑,只返回数据(一般是JSON格式),不用管界面好不好看。

现在前后端分离架构已经成为web开发的主流。

你可以不去了解分布式、微服务架构,但至少,要做前后端分离。

前端框架:Vue,React

后端框架:Springboot,Express

3.用户和服务器交互的方式是通过API接口传输JSON数据

API(Application Programming Interface):应用编程接口,从名字我们能够看出,这个东西应该是在编程时使用的,用户不应该感知出来。

第二个问题中,我们提出了前后端分离,那么前端如何与后端通信呢?

一般通过前端中的JS向后端的一个API接口(可以理解为一个网页地址),发送请求(这个请求实际上还是客户机发出的,一般为http或https),后端返回数据后再通过JS动态加载进页面中。

http流程:

1.用户向后端发送一个请求(request)

2.后端处理数据(计算、数据库交互、其他逻辑)

3.后端返回一个响应(response)

4.API接口分为两大类:GET和POST

GET请求

相当于直接在浏览器地址栏访问,可以携带若干个字符串形式的URL(Uniform Resource Locator)参数,总长度限制于浏览器有关,一般在5~10万,不同参数用&连接。

https://cn.bing.com/search?q=get%E6%8E%A5%E5%8F%A3%E9%95%BF%E5%BA%A6&cvid=26da819607ad4891a24f3e4c1defe6fe&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIGCAEQABhA0gEIMzAyMWowajmoAgCwAgA&FORM=ANAB01&PC=CNNDDB

  • 接口地址:https://cn.bing.com/search
  • 参数(JSON格式):{
    “q”:“get%E6%8E%A5%E5%8F%A3%E9%95%BF%E5%BA%A6”,
    “cvid”:“26da819607ad4891a24f3e4c1defe6fe”,
    “gs_lcrp”:“EgZjaHJvbWUyBggAEEUYOTIGCAEQABhA0gEIMzAyMWowajmoAgCwAgA”,
    “FORM”:“ANAB01”,
    “PC”:“CNNDDB”,
    }

POST请求

与GET的区别在于,它可以携带一个JSON作为请求体,而不是仅仅只能携带字符串参数,浏览器不能直接发送POST请求,需要借助工具或JS。

一个请求一般由请求头(Header)、请求体(GET没有,JSON)、Cookies(一小串信息,一般携带一些用户信息)组成。

关于POST的具体的知识,如果点赞过500,咱们就接着唠。

5.编写一个简单的前端网页,用于每次随机获取一张壁纸

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>随机壁纸</title>
</head><body><button onclick="ChangeBG()">切换背景</button><script>// ES6,ECMAconst ChangeBG = () => {const urlList = ['https://b0.bdstatic.com/daaa0535d569ce15f5301068353cc9e1.jpg@h_1280','https://b0.bdstatic.com/19fa4ab39078d78891031f43b5d13036.jpg@h_1280','https://b0.bdstatic.com/e1b147b8e75495df728a3f4f69c0f2ff.jpg@h_1280','https://b0.bdstatic.com/6d0437c07d8a5e1ccd60f22ba452c281.jpg@h_1280','https://pic2.zhimg.com/v2-bef6f460b30747888fc62b6d28907305_r.jpg'];const num = Math.floor(Math.random() * urlList.length);document.body.style.backgroundImage = `url(${urlList[num]})`;}ChangeBG();</script>
</body></html>

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

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

相关文章

选择排序及其优化

目录 思想&#xff1a; 代码&#xff1a; 代码优化&#xff1a; 需要注意的特殊情况&#xff1a; 可能出现的所有特殊情况&#xff1a; 优化完成代码&#xff1a; 思想&#xff1a; 每一次遍历数组&#xff0c;选择出最大或最小的数&#xff0c;将其与数组末尾或首位进行…

springboot下

springboot 常用注解介绍 按需开启自动配置项特征介绍 自动配置原理 静态资源配置原理解析 rest风格请求映射 自定义入参的converter实现 springbootApplication启动流程 启动类 一些操作的赋值 启动器类型赋值 用加载器加载接口的实现类 刷新上下文

npm镜像源证书过期问题解决

title: npm镜像源证书过期 search: 2024-02-29 文章目录 Failed to check for updates 问题ERR_PNPM_NO_PKG_MANIFESTnpm缓存清除指令权限不足导致删除不了解决方案npm创建基础配资文件 Failed to check for updates 问题 错误描述如上 检查完 node,vue,npm 的版本后都没啥问…

css3之3D转换transform

css3之3D转换 一.特点二.坐标系三.3D移动&#xff08;translate3d)1.概念2.透视&#xff08;perpective)(近大远小&#xff09;&#xff08;写在父盒子上&#xff09; 四.3D旋转&#xff08;rotate3d)1.概念2.左手准则3.呈现&#xff08;transfrom-style)&#xff08;写父级盒子…

kali linux 解决无线驱动程序问题

Troubleshooting wireless driver issues in Linux can be a frustrating experience if you don’t know what to look for。 This article is meant to be used as a general guideline to better help you find the information you need to solve your wireless issues。 C…

python中的int函数和java中的Integer.parseInt方法

将字符串转换为整数 print(int(‘123’)) # 输出: 123 将浮点数向下取整为整数 print(int(3.14)) # 输出: 3 将布尔值转换为整数 print(int(True)) # 输出: 1 print(int(False)) # 输出: 0 使用指定的进制转换字符串为整数 print(int(‘1010’, 2)) # 输出: 10&#xff…

常见的ADB命令,涵盖了连接设备、安装应用、文件操作、日志调试、应用管理等多个方面

理解了&#xff0c;以下是一个更广泛的ADB命令列表&#xff0c;包括各种应用场景&#xff1a; ### 连接设备和管理连接&#xff1a; 1. adb devices&#xff1a;列出已连接的设备。 2. adb connect <设备IP>&#xff1a;连接到指定IP地址的设备。 3. adb disconnect <…

价值1万元的定制版跑分源码 微信支付宝跑分源码,微信支付宝跑分源码

价值1万元的定制版跑分源码 微信支付宝跑分源码&#xff0c;微信支付宝跑分源码|开代理|自动抢单接单。 此类“跑分”操作究竟是如何运作的呢?以一项“为游戏平台提供微信充值接口”的项目说明来举例:用户成功注册并进一步完善用户信息后&#xff0c;就可以抢单&#xff0c;抢…

ESP8266

一、简介 ESP8266:芯片 ESP8266-NodeMCU:方便对ESP8266芯片操作。 模块内嵌TCP/IP协议栈&#xff0c;可以实现串口、WIFI之间的数据转换传输。 产品特性 支持无线802.11b/g/n三种标准 支持STA/APSTAAP三种工作模式 支持TCP/IP协议栈&#xff0c;支持多路TCP Client连接 内置…

阿里云优惠券一键领取入口分享

阿里云作为国内领先的云计算服务提供商&#xff0c;以其稳定、高效的服务赢得了广大用户的信赖。为了吸引更多用户上云&#xff0c;阿里云经常推出各种优惠活动&#xff0c;其中就包括阿里云优惠券。本文将为大家分享阿里云优惠券一键领取入口&#xff0c;帮助大家快速获取优惠…

【ONE·基础算法 || 链表】

总言 主要内容&#xff1a;编程题举例&#xff0c;熟悉理解单链表类题型。       文章目录 总言1、链表2、两数相加&#xff08;medium&#xff09;2.1、题解 3、两两交换链表中的节点&#xff08;medium&#xff09;3.1、题解 4、重排链表&#xff08;medium&#xff09;4…

并联机器人建模【1】-Delta机器人简介与工作空间分析

并联机器人建模【1】 1. 简介1.1 Delta机器人的结构特点1.2 发展历史2. 工作空间分析3. 运动学正解4. 运动学逆解参考资料引言: Delta机器人(图4)有三组平行的手臂和旋转式或线性驱动器。当对驱动器施加作用力时,末端执行器会在x、y和z轴上移动但是不会出现旋转。Delta机器人…

快讯!TiDB v8 发版!超硬核 v8 引擎!

TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库&#xff0c;是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品。 具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数…

JVM堆栈详解

一、堆 存储对象 二、栈 存储方法内的参数值&#xff0c;局部变量 三、方法区 存储 1、每个类的信息&#xff08;包括类的名称、方法信息、字段信息&#xff09; 2、静态变量 3、常量以及编译器编译后的代码等。 虽然JVM规范把方法区描述为堆的一个逻辑部分&#xff0…

使用canvas内置api完成图片的缩放平移和导出和添加提示

最近挺忙的&#xff0c;几乎没有时间去更新博客&#xff0c;今天正好在学习新东西&#xff0c;正好和大家分享一下。 最近要做一个使用canvas完成图片平移&#xff0c;缩放&#xff0c;添加标注的需求&#xff0c;完成的效果大概如下&#xff1a; 使用canvas内置api完成图片的缩…

Leetcode 88. 合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&#xff0c;合并后数组…

【键值皆有序map 线段树 数学 】100240. 最小化曼哈顿距离

本文涉及知识点 键值皆有序map 线段树 数学 LeetCode100240. 最小化曼哈顿距离 给你一个下标从 0 开始的数组 points &#xff0c;它表示二维平面上一些点的整数坐标&#xff0c;其中 points[i] [xi, yi] 。 两点之间的距离定义为它们的曼哈顿距离。 请你恰好移除一个点&am…

PySpark的学习

一. 什么是PySpark 使用过的bin/pyspark 程序 , 要注意 , 这个只是一个 应用程序 , 提供一个 Python 解释器执行环境来运行 Spark 任务 现在说的 PySpark, 指的是 Python 的运行类库 , 是可以在 Python 代码中 :import pyspark PySpark 是 Spark 官方提供的一个 Python …

后端SpringBoot+Mybatis 查询订单数据库奇怪报错加一

排错过程&#xff1a; 看报错意思是SQL语句存在错误&#xff0c;然后使用图形化工具运行这个SQL语句 其实这里稍微细心想一下就能发现问题&#xff0c;但是当时没深入想&#xff0c;就觉得order表前加了数据库名字影响不大&#xff0c;所以感觉SQL语句是没问题的&#xff0c;然…

C语言 05 变量与常量

变量 变量就像在数学中学习的 x&#xff0c;y 一样&#xff0c;可以直接声明一个变量&#xff0c;并利用这些变量进行基本的运算&#xff0c;声明变量的格式为&#xff1a; 数据类型 变量名称 初始值;&#xff08;其中初始值可以不用在定义变量时设定&#xff09; 是赋值操作…