今日学习内容:
## 1. 什么是服务器?
1.1服务器可以从硬件、软件(系统软件、应用软件)两个角度描述。
- 按硬件描述: 服务器就是一台超级计算机 (超强的cpu、内存、硬盘等等)。
- 按系统划分: 在硬件上安装了什么操作系统,就可以称为该系统的服务器。
- 例如: linux服务器、windows服务器、unix服务器等。
- 按软件划分: 在操作系统中安装了什么软件,就可以称作该软件的服务器。
- 例如: ==apache服务器、数据库服务器==、邮件服务器等。
## 1.2 Web 服务器
Web服务器就是安装了Web服务软件,能够提供网站服务的服务器。例如:淘宝、京东、新浪等等
常见的 Web 软件:
- ==Apache==、Nginx、IIS、Tomcat、==Node.js== 等。
- Apache服务器、Nginx服务器、IIS服务器、Tomcat服务器、Nodejs服务器
- PS: web服务器又叫做 http / https 服务器
# 2. 网站基础概念
## 1.3 URL地址解析
浏览器中输入的地址: 127.0.0.1/shop/index.html / 192.168.124.38/shop/index.html
实际全地址: http://127.0.0.1:80/shop/index.html
- http: 协议名, http协议(超文本传输协议)
- 127.0.0.1/192.168.124.38: 服务器IP地址
- 80: Apache服务器的默认端口号
- /shop/index.html: 要访问的文件路径
## 1.4 **IP **地址
IP: Internet Protocol 互联网协议,是为计算机网络相互连接进行==通信==而设计的协议。
- 处于网络(互联网、局域网)上的任何一台计算机都有一个独立的ip地址。
- ip地址由4段3位长度的数字组成, 3位数字的取值范围 0-255。如: 102.15.201.10
- ip地址值在 0~255 之间
特殊ip:
- 127.0.0.1 : 回环地址,每一台电脑都有该ip,指向当前使用的电脑
- 192.168.**.* * : 该网段是专门用于做==局域网==的ip段。
## 3.3 域名
- IP地址存在的问题: 数字太长,不容易记忆
- 解决方案: 使用带有意义的单词或者字母组合来代替IP地址 ---> 域名(==Domain== Name)
- 域名也是唯一的,一个域名对应一个IP地址
- 淘宝: `11.12.103.201` www.taobao.com
- 百度: `21.102.10.2` www.baidu.com
2. DNS
==核心: 域名虽然也是唯一的,但是要在互联网上找到一个具体网站,还是要靠IP地址。==
DNS: Domain Name System 域名系统。在DNS服务器中保存了==域名和IP的映射关系==。主要工作是将域名转换为IP地址,因为我们通过浏览器访问网站时,实际上是去找对应的IP地址。
hosts 文件可以手动设置域名和IP的映射关系
dns缓存可以保存曾经访问过的域名和IP的映射关系
工作步骤:
1) 在浏览器中输入 www.taobao.com,按下回车
2) 浏览器首先在本机中的 hosts文件和dns缓存中查询,www.taobao.com的IP地址。如果有,则获取该IP地址,然后去访问淘宝服务器。 如果没有,则向dns服务器发送解析请求。
3) dns服务器获取到浏览器请求信息之后, 将域名转换为IP地址,再将IP地址返回给浏览器。
4) 浏览器获取到IP地址,然后通过IP地址访问淘宝服务器。
## 3. 网络中的绝对路径和相对路径
绝对路径:
当 href 和 src 属性中的地址以 **/ 开头时就是绝对路径**,该路径会自动补全浏览器地址栏中协议、IP/域名、端口号
- `<img src="/assets/images/1.png" />` ===> 
- `<link href="/assets/images/a.css" />` ===> http://127.0.0.1:3000/assets/images/a.css
- req.url 得到就是没有 协议、IP/域名、端口号 的地址 ===> /assets/....
相对路径:
- ./ : 去掉当前路径中的最后一层,继续向下拼
- http://127.0.0.1:3000/show/aa/bb/cc
- `<img src="./assets/images/1.png" />` ===> 
- ../ : 去掉当前路径中的后两层,继续向下拼
- http://127.0.0.1:3000/show/aa/bb/cc
- `<img src="../assets/images/1.png" />` ===> 
==网络中一般都使用绝对路径==
# 2. 绝对路径
## 2.1 相对路径的缺陷
案例: 在不同的目录下启动服务器,并通过浏览器访问
① C:\Users\Administrator\Desktop\node\node-2\code\3-path
- 启动命令: `node 01-server.js`
- 启动服务器后能够正常通过浏览器访问
② C:\Users\Administrator\Desktop\node\node-2\code
- 启动命令: `node ./03-path/01-server.js`
- 启动服务器后无法正常通过浏览器访问
- 原因: 控制台使用 ==当前绝路路径拼接readFile中的相对路径==,所以读取文件失败
## 4. 路径变量
- __dirname:获取==当前文件==所处目录的绝对路径
- __filename:获取当前文件的绝对路径
## 2.3 Path模块 (系统模块)
1) join(,,,,)方法: ==能够根据不同参数不同系统组装不同的文件地址== /
2) sep 属性: / 或 \ , windows系统下是 \ ; 类 unix 系统下是 /
3) dirname('xxxxx'): 获取文件路径 (不包含文件名)
4) basename(): 获取文件名 (不包含目录路径)
5) extname(): 获取文件后缀
5. 模板引擎介绍
- 模板引擎的本质是一种==字符串拼接技术==
- 按照规则在模板页(网页)上挖坑,布置数据规则
- 再将数据和模板组合成一个字符串
## 3.2 art-template基本使用
使用art-template模板引擎遵循以下步骤即可:
- 1) 安装 / 下载 模板引擎 (npm i art-template) 补充说明:如果不能正常安装,先执行命令npm init -y
- 2) 加载 art-template 模块 (require)
- 3) 准备模板页(一般是html页面) 和 要显示在页面上的数据 (js 对象)
- 4) 调用模板引擎核心方法(template)组装模板和数据,得到一个字符串
- 5) 将组装好的字符串返回给浏览器
# 4. 表单提交
表单标签: form、input、select-option、textarea
表单提交有两种方式 get(默认) 和 post(常用)
|