http服务和node.js异步编程

本文介绍了服务器端基础概念,包括网站组成、服务器、IP地址、域名、端口和URL。接着讲解了如何创建Web服务器,重点探讨了HTTP协议,包括请求和响应报文。最后深入讨论了Node.js的异步编程,包括同步API、异步API、回调函数、Promise和异步函数的使用。
摘要由CSDN通过智能技术生成

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

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值