1.服务器端基础概念
1.1网站的组成
网站应用程序主要分为两大部分:客户端和服务器端。 客户端:在浏览器中运行的部分,就是用户看到并与之交互的界面程序。使用HTML、CSS、JavaScript构建。 服务器端:在服务器中运行的部分,负责存储数据和处理应用逻辑。
1.2 网站服务器
能够提供网站访问服务的机器就是网站服务器,它能够接收客户端的请求,能够对请求做出响应。
可以简单的理解为一台电脑
以前放服务器的叫机房,现在都叫数据中心
1.3 IP地址
IP地址是互联网中设备的唯一标识。 IP是Internet Protocol Address的简写,代表互联网协议地址。
IP地址相当于每个家庭的门牌号
1.4 域名
为什么访问网站,不用输入IP地址,因为有域名
由于IP地址难以记忆,所以产生了域名的概念,所谓域名就是平时上网所使用的网址。 http://daqitc.net/ => http://47.94.213.98/
虽然在地址栏中输入的是网址, 但是最终还是会将域名转换为ip才能访问到指定的网站服务器。
1.5 端口
虽然门牌号可以唯一的标识每一台服务器,但是服务器上运行的软件很多 ,如邮件服务,文件服务,数据库服务等,这些服务都在一台服务器上运行,如何让这些服务都可以运行,而且互不影响呢?那就是端口。
端口是计算机与外界通讯交流的出口,用来区分服务器电脑中提供的不同的服务。
每个程序都占用各自的端口,虽然在一台服务器上,但是各司其职。
1.6 URL
统一资源定位符,又叫URL(Uniform Resource Locator),是专为标识Internet网上资源位置而设的一种编址方式,我们平时所说的网页地址指的即是URL。
URL 格式:传输协议://服务器IP或域名:端口/资源所在位置标识
比如:https://blog.csdn.net/mynewdays/article/details/103814431
- 传输协议:https
- 服务器域名:blog.csdn.net,端口默认为80
- 资源所在位置标识:mynewdays/article/details/103814431
1.7 开发设置
开发阶段,我们的电脑就是客户端,但是没有必要再购买一台电脑作为服务器
我们的电脑,既可以做客户端,也可以做服务器
当然需要安装服务器软件,这里是Node服务
前面学过,从一台电脑访问另一台电脑,需要知道另一台电脑的IP地址或者域名(这个需要申请和购买),如果我们自己的电脑作为服务器,那么如何访问呢
域名:localhost
IP:127.0.0.1
2. 创建web服务器
node 是一门服务器语言,相较于前面学过的 php ,能做的事情更多。
php能做网站,node 也可以
php 不能做的,node 也可以
下面我们要学习的就是 node 如何做网站
这里的web服务器,与上面的服务器是两个概念
上面的服务器是一台电脑
这里的服务器是在电脑上启动的一个服务,作用是让当前电脑中的资源可以被其他电脑通过URL访问
下面的代码,能够在服务器上,启动一个web服务器
// 引入http模块
const http = require('http')
// 创建一个http服务
var app = http.createServer()
/*为app对象注册 request事件,当客户端有请求到达服务器后,会触发这个事件执行
回调函数中有两个参数
1)req:表示客户端的请求信息,可以从中获取客户端的信息
2)res:表示服务端的相应,可以使用此对象向客户端发送信息
*/
app.on('request', (req, res) => {
// 服务器必须向客户端发送响应信息,否则客户端就会一直等待
res.end('ok')
})
// 为服务区设置监听端口
app.listen(3000, () => {
console.log('Server is running at http://127.0.0.1:3000')
})
总结:
- 前面学习 html、css 和 js 时,我们安装了一个插件 live server,负责接受用户的请求,并将请求的数据返回给客户端
- 现在我们自己编写一个类似 liver server 的服务入程序,作用也是接受客户端的请求,并进行想要的相应
3. HTTP
3.1 请求概述
服务器搞定了,那么客户端(浏览器)要从服务器获取数据,或者向服务器发送数据,双方如何对话呢?
具体来说分为三个步骤
- DSN 解析,建立TCP连接,发送http请求
- server接收到http请求,处理,并返回响应
- 客户端接收到返回数据,并处理数据,如渲染页面,执行Js
两台计算机之间对话也要遵循一定的格式,就好比写信,要遵循一定的格式。
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)规定了如何从网站服务器传输超文本到本地浏览器,它基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)请求和应答的标准。
HTTP 协议就是计算机之间对话要遵循的格式(协议)
3.2 报文(信的内容)
在HTTP请求和响应的过程中传递的数据块就叫报文,包括要传送的数据和一些附加信息,并且要遵守规定好的格式。
从客户端发往服务器的叫请求报文
从服务器返回给客户端的叫响应报文
从浏览器的开发者工具中可以查看报文信息
3.3 请求报文
请求方式分为get 和post
<