服务器相关概念
服务器与客户端
提供网络服务的一台机器,通过在自己的电脑上安装特殊的软件(或者是运行某段特殊的代码)来提供服务。
服务器 = 电脑 + 能给其它电脑提供服务的软件
客户端与服务器:提供服务的是服务器,享受服务的是客户端
服务器的类型
web服务器:图片浏览,新闻浏览....等服务的服务器
ftp服务器:为其它电脑提供文件下载,共享服务
数据库服务器:为其它电脑提供数据库服务
ip地址
标识一个网络设备(计算机、手机、电视)在某一个具体的网络当中的地址。要访问某个电脑上的资源,先要找到它的ip。
在同一个网络中,计算机的IP是不允许相同的,都是唯一的
127.0.0.1 特指本机ip地址
域名
它是ip地址的别名
localhost这个域名特指127.0.0.1
端口
一个IP地址的端口可以有65536个,范围是从[0,65535])。不同的端口被不同的软件占用,以提供不同的服务
如果IP地址是一个商场,那么端口就是里面每个店铺的店号
http协议
约定浏览器与web服务器之间的之间通信规则
浏览器 请求 资源 要遵守 http 协议
请求报文(请求行,请求头,请求体)
服务器 返回 资源 要遵守 http 协议
响应报文(响应行,响应头,响应体)
用http 模块写一个简单的web服务器
// 引入http模板
const http = require('http');
// 2. 创建服务const server = http.createServer(function(req, res) {
// 回调;每一次都会执行一次
// 向客户端发送内容,并结束本次响应 res.end('hello world');
});
// 3. 启动服务
server.listen(端口号, ()=>{ // 启动成功 } )
理解请求和响应
`ab=1`
```
console.log()
```
每一次请求都会执行回调
res.end()两个作用:
结束请求
设置响应体
res.end() 两种参数类型:
string
Buffer
url
统一资源定位器
作用:
帮助我们找到这个资源(.html, .css, .js ,....接口..)
格式:
协议://域名(ip地址)[端口]/路径?查询字符串#锚点
content-type
告诉对方(可能是浏览器,也可能是服务器),本次传输的数据是什么类型
通过使用res对象中的setHeader方法,设置content-type这个响应头
格式:
res.setHeader('content-type', 'xxxxxxx')
状态码
http协议约定的编码
常见有:200、301、400、401、404、500
处理.html文件中的二次请求
如果一个html文件中,再次引用其它的外部资源,则它会再发请求
统一处理静态资源
思路:
收到请求后,在指定的文件夹下读资源
读到 —> 返回
读不到 —> 返回404
try catch
设置content-type // 策略模式
理解静态资源与接口的区别
静态资源
index.html, style.css, index.js, mp4, .png
处理静态资源:读出这个资源,再返回
动态资源:接口
服务器上的一段代码
处理接口:执行这一段代码,把结果返回
发送请求的途径
* 直接在地址栏中写url
* a标签跳转
* 表单提交
* ajax请求
发送请求的类型
get post put patch ...
网友评论