-
服务器相关的概念-客户端和服务器
-
服务器与客户端
- 提供网络服务的一台机器,通过在自己的电脑上安装特殊的软件(或者是运行某段特殊的代码)来提供服务。
- 服务器 = 电脑+能给其他电脑提供服务的软件
- 客户端与服务器: 提供服务的是服务器, 享受服务的是客户端
-
服务器的类型
- 根据服务不同,服务器的类型也不同:
- web服务器。安装apache, tomcat, iis, nginx, 或者在nodejs环境写代码来提供:图片浏览,新闻浏览....等服务的服务器。
- ftp服务器。安装serv-U软件,为其它电脑提供文件下载,共享服务。
- 数据库服务器。安装mysql软件,为其它电脑提供数据库服务。
- ....
-
web服务器
- 用户通过浏览器来享受web服务器提供的服务
- 我们用URL地址来访问某个web服务器上的资源
- 浏览器端发出请求,web服务器收到请求后,响应这个请求,并将处理的结果返回给浏览器
- 浏览器端与web服务器是通过http协议来进行响应和请求的
-
协议
- 制定客户端与服务器之间的通讯规则. 不同的协议作用也不相同
-
http协议:
- HTTP(HyperText Transfer Protocol) 超文本传输协议。
- 协议双方: 浏览器与web服务器都要遵守的协议
- 请求通常是由像浏览器发起的
- HTTP 协议中明确规定了`请求数据`和`响应数据`的格式(报文)
- 浏览器请求资源要遵守http协议:请求报文(请求行,请求头,请求体)
- 服务器返回资源要遵守http协议: 响应报文(响应行,响应头,响应体)
-
IP和域名
- IP
- 作用: 标识一个网络设备(计算机、手机、电视)在某一个具体的网络当中的地址。要访问某个电脑上的资源,先要找到它的ip。
- 分类: IPV4 IPV6
- 以IPV4为例子
- 格式:[0-255].[0-255].[0-255].[0-255]即为四个 0-255 的数字组成。在同一个网络中,计算机的IP是不允许相同的,都是唯一的。
- 由于IPv4最大的问题在于网络地址资源不足,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。
- 域名
- 域名:ip地址的别名,由于ip地址不好记忆,我就给它们取个好记的别名。localhost这个域名特指本机ip的地址。
- 域名解析系统:把域名翻译成Ip地址的系统。
- IP
-
端口
- 一个IP地址的端口可以有65536个,范围是从[0,65535])。不同的端口被不同的软件占用,以提供不同的服务。
- 如果理解IP地址(一台服务器)是一栋大商场,端口就是商场中的商铺的编号。
- 如果理解IP地址(一台服务器)是公司的前台电话,端口就是公司中各个部门的分机号。
- 一台电脑可以通过安装多个服务器端软件来提供服务,比如Web服务、FTP服务、SMTP服务等。显然,仅仅通过ip地址是无法区分不同的服务的,这里就需要用到 "IP地址+端口号"来区分不同的服务`。
-
服务器要提供服务必须要通过指定的端口
-
服务器与客户端都需要通过端口来进行通信
-
端口是可以编程分配的
-
有一些端口号是被预定过了的类似 http:80(443)
-
通过cmd命令 netstat -a -n -o 可以查看端口的使用情况
- 一个IP地址的端口可以有65536个,范围是从[0,65535])。不同的端口被不同的软件占用,以提供不同的服务。
-
URL(统一资源定位器)
- 作用: 定位资源 , 类似前端的css html js png avi MP4 接口 等等..
- 格式: 协议://主机地址[:端口]/路径?查询字符串#锚点
- 协议:http或者https
- 主机地址: 可以是IP地址或者域名
- 端口号
- http请求,默认端口80(可以省略不写)
- https请求, 默认端口号443(可以省略不写)
-
路径 : 服务器文件夹上的资源,如 .html /.css /.image /.js
-
参数(查询字符串) : ?后面的部分,以键值对的形式参在,如./html?name=1&age=2
-
锚点:网页内部的锚点连接, 在vue中也会说明
-
三步写一个简单的web服务器(下载node.js,否则无法运行)
- 第一步
- 新建一个文件,名为http.js,(文件名和路径不建议中文字符)
- 第二步(书写代码)
-
// 1. 引入http模块 const http = require('http'); // 2. 创建服务 const server = http.createServer(function(req, res) { console.log('有人来访问了') res.setHeader('content-type','text/html;charset=utf8') // 向客户端发送内容,并结束本次响应 res.end('hello world'); }); // 3. 启动服务 server.listen(8081, function() { console.log('服务器启动成功,请在http://localhost:8081中访问....'); });
-
第三步, 运行代码
- 第一步
-
完~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~