|
| 1 | + |
| 2 | + |
| 3 | +# Web开发基础 |
| 4 | + |
| 5 | +### 1. Web通信 |
| 6 | +Web通信是Web应用的核心,主要涉及客户端(通常是浏览器)与服务器之间的交互。其核心概念和框架如下: |
| 7 | + |
| 8 | +#### **1.1 HTTP协议** |
| 9 | +- **定义**:HTTP(HyperText Transfer Protocol,超文本传输协议)是Web通信的基础协议,用于定义客户端和服务器之间请求和响应的格式。 |
| 10 | +- **请求(HTTP Request)**: |
| 11 | + - **请求方法**:常用的有GET(获取资源)、POST(提交数据)、PUT(更新资源)、DELETE(删除资源)。 |
| 12 | + - **参数传递**:可以通过路径(如`/info/aaa`)、查询字符串(如`?username=aaa`)或请求体(如JSON格式)传递数据。 |
| 13 | + - **身份验证**:通过Cookies等方式实现用户身份验证,但也存在安全性问题(如第三方Cookies)。 |
| 14 | +- **响应(HTTP Response)**: |
| 15 | + - **状态码**:用于表示请求的结果,如200(成功)、400(请求错误)、403(禁止访问)、404(未找到)、500(服务器错误)。 |
| 16 | + - **正文**:响应中可以携带文件或数据,如HTML页面、图片等。 |
| 17 | +- **HTTPS**:HTTP的加密版本,通过SSL/TLS协议实现数据加密传输,解决HTTP的不安全问题(如信息明文传输、无法验证身份等)。 |
| 18 | + |
| 19 | +#### **1.2 请求与响应流程** |
| 20 | +以网上选课系统为例: |
| 21 | +1. 用户通过浏览器访问选课系统(GET请求)。 |
| 22 | +2. 服务器返回选课页面(200 OK状态码)。 |
| 23 | +3. 用户输入用户名和密码并提交(POST请求)。 |
| 24 | +4. 服务器验证用户信息,返回课表数据(响应正文)。 |
| 25 | + |
| 26 | +#### **1.3 调试工具** |
| 27 | +- **Postman/Apifox**:用于手动发送HTTP请求,测试API接口。 |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +### 2. Web页面 |
| 32 | +Web页面是用户通过浏览器访问的内容,由HTML、CSS和JavaScript组成,统称为“前端三件套”。 |
| 33 | + |
| 34 | +#### **2.1 HTML(HyperText Markup Language)** |
| 35 | +- **定义**:HTML是用于描述网页内容的标记语言,通过标签定义网页的结构和内容。 |
| 36 | +- **常用标签**: |
| 37 | + - **文本标签**:`<h1>-<h6>`(标题)、`<p>`(段落)、`<ul>`(无序列表)、`<ol>`(有序列表)、`<li>`(列表项)。 |
| 38 | + - **图像和链接**:`<img>`(插入图片)、`<a>`(超链接)。 |
| 39 | + - **容器标签**:`<div>`(分区容器)、`<span>`(文本片段)。 |
| 40 | + - **其他**:`<header>`(页眉)、`<style>`(内部样式表)。 |
| 41 | +- **属性**:HTML标签可以有属性,如`class`(类名)、`id`(唯一标识符)、`style`(样式)、`src`(外部资源链接)。 |
| 42 | + |
| 43 | +#### **2.2 CSS(Cascading Style Sheets)** |
| 44 | +- **定义**:CSS用于美化网页,定义HTML元素的样式。 |
| 45 | +- **使用方式**: |
| 46 | + - **内联样式**:通过`style`属性直接在HTML标签中定义样式。 |
| 47 | + - **内部样式表**:在`<head>`中使用`<style>`标签定义样式。 |
| 48 | + - **外部样式表**:将样式定义在单独的`.css`文件中,通过`<link>`标签引入。 |
| 49 | +- **层叠性(Cascading)**:当多个样式定义冲突时,优先级顺序为:内联样式 > 内部样式表 > 外部样式表。 |
| 50 | + |
| 51 | +#### **2.3 JavaScript(JS)** |
| 52 | +- **定义**:JavaScript是一种脚本语言,用于实现网页的动态交互。 |
| 53 | +- **功能**: |
| 54 | + - 操纵HTML元素(如修改样式、内容)。 |
| 55 | + - 响应用户事件(如点击按钮)。 |
| 56 | + - 与服务器交互(如通过AJAX动态加载数据)。 |
| 57 | +- **使用方式**: |
| 58 | + - **嵌入HTML**:通过`<script>`标签直接写在HTML文件中。 |
| 59 | + - **外部脚本**:将JavaScript代码写在单独的`.js`文件中,通过`<script src="...">`引入。 |
| 60 | + |
| 61 | +--- |
| 62 | + |
| 63 | +### 3. Web应用基础 |
| 64 | +Web应用是基于Web技术构建的应用程序,分为静态网页和动态网页,采用前后端分离的开发模式。 |
| 65 | + |
| 66 | +#### **3.1 静态网页** |
| 67 | +- **定义**:内容固定不变的网页,服务器只需查找并返回请求的文件。 |
| 68 | +- **特点**: |
| 69 | + - 简单,无需服务器端逻辑处理。 |
| 70 | + - 适合内容不经常更新的网站(如个人博客)。 |
| 71 | +- **服务器端**:使用通用的Web服务器软件(如Apache、Nginx)即可满足需求。 |
| 72 | + |
| 73 | +#### **3.2 动态网页** |
| 74 | +- **定义**:内容根据用户请求动态生成的网页。 |
| 75 | +- **特点**: |
| 76 | + - 服务器端需要处理逻辑(如从数据库读取数据)。 |
| 77 | + - 内容根据用户需求动态变化(如用户信息、搜索结果)。 |
| 78 | +- **实现方式**: |
| 79 | + - 服务器端使用模板文件,根据请求内容填充数据后返回。 |
| 80 | + - 常用技术栈:PHP、Node.js、Python(Django/Flask)等。 |
| 81 | + |
| 82 | +#### **3.3 前后端分离** |
| 83 | +- **定义**:将前端(用户界面)和后端(服务器逻辑)分离,各自独立开发。 |
| 84 | +- **优势**: |
| 85 | + - **开发效率**:前端和后端可以并行开发。 |
| 86 | + - **用户体验**:前端可以快速响应用户操作,后端专注于数据处理。 |
| 87 | + - **可维护性**:代码结构清晰,便于维护和扩展。 |
| 88 | +- **实现方式**: |
| 89 | + - 前端通过API(应用程序接口)与后端通信。 |
| 90 | + - 前端框架(如React、Vue.js)负责页面渲染,后端框架(如Spring Boot、Express.js)提供数据服务。 |
| 91 | +- **安全问题**:前端代码可能被篡改,导致向后端发送恶意请求。 |
| 92 | + |
| 93 | +#### **3.4 持久化存储** |
| 94 | +- **定义**:Web应用需要存储数据,以便在用户请求时提供。 |
| 95 | +- **存储方式**: |
| 96 | + - **服务器端存储**:使用数据库(如MySQL、MongoDB)保存用户数据、历史记录等。 |
| 97 | + - **客户端存储**:使用Cookies、LocalStorage等技术保存用户偏好、登录状态等。 |
| 98 | + |
| 99 | +--- |
| 100 | + |
| 101 | +### 4. 学习路径与总结 |
| 102 | +- **Web开发基础**:掌握HTML、CSS和JavaScript,理解HTTP协议和Web通信流程。 |
| 103 | +- **前后端分离开发**:学习前端框架(如React、Vue.js)和后端框架(如Node.js、Django)。 |
| 104 | +- **数据存储**:学习数据库技术(如SQL、NoSQL)和API开发。 |
| 105 | +- **工具**:掌握浏览器开发者工具(如Chrome DevTools)、API测试工具(如Postman)。 |
| 106 | + |
0 commit comments