node.js核心服务http基础学习

核心模块http

Node.js 中的 HTTP 接口旨在支持传统上难以使用的协议的许多功能。 特别是,大块的、可能块编码的消息。 接口永远不会缓冲整个请求或响应,用户能够流式传输数据。

简而言之:http服务是相当低层次的,我们可能要用到不同的模块来实现完整的Web服务器。主要用http模块的地方是实现供应用程序使用的后端Web服务;也就是http是帮你写服务器的。

http是帮你写服务器的

  1. 传统的动态网站开发需要用到应用软件
    PHP需要php模块和Apache/wamp服务器等软件
    JAVA:Tomcat 、Weblogic
  2. Node.js不需要用到应用软件,只是一个环境,可以构建web服务器

创建一个web服务器

服务器server:接收来自客户端的请求,并将客户端请求的地址返回给客户端。

//1.加载http核心模块
var http =require('http');
//2.使用http.createServer()  创建一个web服务器
//返回一个server对象
var server = http.createServer();

//3.服务器:接收请求,处理请求,响应
server.on('request',function(req,res){
    console.log('收到请求')//每次执行请求访问都会打印一次
    res.write('url:');
    res.end(req.url)
})

//4.绑定端口号,启动服务器(可以访问)
server.listen('3000',function(res){
    console.log('服务器启动');
})

//5.服务器发送给客户端的
var client = http.get('localhost:3000', function(clientRes){
    clientRes.pipe(process.stdout);
});

进一步解析上面的代码

  1. 要使用 HTTP 服务器和客户端,必须 require(‘http’)
  2. 四个实例
    • server:服务器实例对象(http.Server实例)
    • client:http.ClientReques实例,用来向服务端发起请求(启动、监控和处理来自服务器的响应)
    • req对象是Class: http.IncomingMessage的实例对象,可用于访问响应状态、消息头、以及数据
    • res对象是Class: http.ServerResponse(由 HTTP 服务器在内部创建)的实例对象
  3. 打印结果
    web服务器

HTTP模块的简单使用

const http = require('http');
http.createServer((req,res)=>{
    // req.url可以获取URL中的路径(端口之后部分)
    if(req.url.startsWith('/index')){
        // write向客户端响应内容,可以写多次
        res.write('hello');
        res.write('hi');
        res.write('nihao');
        // end方法用来完成响应,只能执行一次
        res.end();
    }else if(req.url.indexOf('/about')===0){
        res.end('about');
    }else{
        res.end('no content');
    }
}).listen(3000,()=>{
    console.log('running...');
});
// 监听3000端口号

运行开启服务器
服务器已经启动
打开浏览器,建立与服务器端口特定的链接
接收服务器的响应

HTTP

  1. 为了支持所有可能的 HTTP 应用程序,Node.js 的 HTTP API 非常底层。 它仅进行流处理和消息解析。 它将消息解析为消息头和消息主体,但它不会解析具体的消息头或消息主体。
  2. HTTP是node的核心模块,入门容易,真正弄懂还需要深入理解服务器和客户端,它们的三次握手来结合。
  3. 文档
    http://nodejs.cn/api/http.html#http_http

猜你喜欢

转载自blog.csdn.net/weixin_41105030/article/details/86649682
今日推荐