当前位置: 首页 > news >正文

给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,ECMA
        const 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>

相关文章:

  • Go语言HTTP服务实现GET和POST请求的同时支持
  • 【EasyExcel】多sheet、追加列
  • win10下androidstudio的配置与gradle配置
  • npm 常用命令详解
  • 设计模式深度解析:AI如何影响装饰器模式与组合模式的选择与应用
  • 蓝桥杯刷题第四天
  • 排序——非基于比较的排序
  • Linux线程互斥
  • (C语言)球球大作战
  • Day54:WEB攻防-XSS跨站Cookie盗取表单劫持网络钓鱼溯源分析项目平台框架
  • MoonBit MeetUp回顾——张正、宗喆:编程语言在云原生与区块链领域的技术探索
  • VMware虚拟机更换引导顺序
  • proteus+keil5仿真学习笔记(补充章 特殊功能寄存器上)
  • 前端开发神器之 VsCode AI 辅助插件 DevChat
  • SpringBoot 整合Redis第1篇
  • 计算机的组成原理
  • 软考系统架构设计师(摘抄)01
  • 分享一个nhanes数据报错的解决方案
  • 道可云元宇宙每日资讯|元宇宙标准化工作组成立大会召开
  • .NET开源、免费、跨平台的Git可视化管理工具
  • 定位真核生物起源于约27.2亿年前,华东师大团队在《自然》发文
  • 明查|这是“C919迫降在农田”?实为飞机模型将用于科普体验
  • 习近平抵达莫斯科对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 从黄土高原到黄浦江畔,澄城樱桃品牌推介会明日在上海举办
  • 8小时《大师与玛格丽特》:长度可以是特点,但不是价值标准
  • G40迎来返程大车流,今明两日预计超13万辆车经长江隧桥进沪