Node.js学习笔记(八)

Web服务器

概念:当应用程序(客户端)需要某一个资源时,可以向一个台服务器,通过Http请求获取到这个资源;提供服务的这个服务器,就是一个Web服务器

目前存在的开源服务器:Nginx、Apache(静态)、Apache Tomcat(静态、动态)、Node.js

Http模块

const http = require('http');

const HTTP_PORT = 8000;

const server = http.createServer((req, res) => {
  res.end("Hello World");
});

server.listen(8000, () => {
  console.log(`🚀服务器在${HTTP_PORT}启动~`)
})

创建一个Web服务器

可以通过createServer来创建一个服务器

http.createSever会返回一个服务器对象

function createSever(opts, requestListener) {

  return new Server(opts, requestListener);

}

也可以自己创建这个对象:

const server2 = new http.Server((req, res) => {
  res.end("Hello Server2");
});

server2.listen(9000, () => {
  console.log("服务器启动成功~");
})

创建Server时会传入一个回调函数,这个回调函数在被调用时会传入两个参数

req: request请求对象,包含请求相关的信息;

res: response响应对象,包含我们发送给客户端的信息

监听端口和主机

Sever通过listen方法来开启服务器,同时在某一个主机和端口上监听网络请求:

当我们通过IP:port的方式发送到我们监听的服务器时,我们可以对其进行相关的处理

listen函数有三个参数:

端口port:可以不传,默认会分配端口;

主机host:通常传入localhost、IP地址127.0.0.1、或者ip地址0.0.0.0, 默认是0.0.0.0;

localhost:本质上是一个域名,但是会被解析成127.0.0.1

127.0.0.1:回环地址(Loop Back Address)---主机自己发出去的包,直接被自己接收

        正常的数据库包经过 应用层-传输层-网络层-数据链路层-物理层

        回环地址在网络层就直接被获取到了,不会经过数据链路层和物理层

        我们监听127.0.0.1时,在同一个网段的不同主机中,通过ip地址是不能访问的;

0.0.0.0:

        监听IPV4上的所有地址,再根据端口找到不同的应用程序

        监听0.0.0.0时,在同一个网段下的主机中,通过ip地址是可以访问的;

回调函数:服务器启动成功是时的回调函数

request请求对象

向服务器发送请求时,我们可以携带很多信息,

服务器根据不同的URL进行不同的处理、请求方式的不同GET、POST、DELETE等,请求传入的参数和处理的方式是不一样的;请求头中的headers字段也可以携带一些信息,比如客户端的信息、接受数据的格式、支持的编码格式等等。

Node会帮我们封装在一个request对象中,我们可以直接来处理这个对象

const server = http.createServer((req, res) => {
  // request对象
  console.log(req.url);
  console.log(req.method);
  console.log(req.headers);

  res.end("Hello World");
});

URL的处理

客户端发送请求时,会请求不同的数据,则会传入不同的请求地址;

服务器端则需要根据不同的请求地址,作出不同的响应;

Method的处理

在Restful规范(设计风格)中,我们对于数据的增删改查采用不同的请求方式

GET--查询数据 POST--新建数据 PATCH--更新数据 DELETE--删除数据

HTTP的返回状态码

常见的状态码如下:

200 - OK - 客户端请求成功

400 - bad  request - 由于客户端请求有语法错误,不能被服务器所理解

401 - Unauthorized - 请求未经授权(该状态码必须与WWW-Authenticate报头域一起使用)

403 - Forbidden - 服务器收到请求,但是拒绝提供服务,服务器通常会在响应正文中给错不提供的原因

404 - Not Found - 请求的资源不存在(例:输入了错误的URL)

500 - Internal Server Error - 服务器发生不可预期的错误,导致无法完成客户端的请求

503 - Service Unavailable - 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能恢复00正常。

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值