• 【日记】搭建一个node本地服务器


    用node搭建一个本地http服务器。首先了解htpp服务器原理

    HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。下图表明了这种请求/响应模型。

    以下是HTTP请求/响应的步骤:

    1)客户端连接到Web服务器

    一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.oakcms.cn。

    2)发送HTTP请求

    通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

    3)服务器接受请求并返回HTTP响应

    Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。

    4)释放连接TCP连接

    Web服务器主动关闭TCP套接字,释放TCP连接;客户端被动关闭TCP套接字,释放TCP连接。

    5)客户端浏览器解析HTML内容

    客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

    目前最主流的三个Web服务器是Apache、Nginx

    Web 应用架构

    • Client - 客户端,一般指浏览器,浏览器可以通过 HTTP 协议向服务器请求数据。

    • Server - 服务端,一般指 Web 服务器,可以接收客户端请求,并向客户端发送响应数据。

    • Business - 业务层, 通过 Web 服务器处理应用程序,如与数据库交互,逻辑运算,调用外部程序等。

    • Data - 数据层,一般由数据库组成。

    使用node去实现一个简单的http服务器很容易

    1.监听浏览器端口(http模块)

    2.获取请求的url(服务器端文件处理获取指定文件 fs文件模块)

    3.返回数据

    创建项目目录

    在项目目录下新建一个test.js,写入

    var http=require('http');
    //开启服务
    var server=http.createServer(function(req,res){
        console.log('有客户端连接');//创建连接成功显示在后台
        res.writeHeader(200,{
            'content-type' : 'text/html;charset="utf-8"'
        });
        res.write('这是正文部分');//显示给客户端
        res.end();
    }).listen(8888);
    console.log('服务器开启成功');
    在项目下下运行
    node server.js

    然后在浏览器端输入127.0.0.1:8888

    输出

    这是正文部分

     现在大概理解怎么去实现http服务器了吧

    好了现在开始

    var http=require('http');
    var fs=require('fs');
    var root="E:/HBspace/node/"
    //开启服务
    var server=http.createServer(function(req,res){
        var url=req.url;
        var file = root+url;
        fs.readFile(file,function(err,data){
            if(err){
                res.writeHeader(404,{
                    'content-type' : 'text/html;charset="utf-8"'
                });
                res.write('<h1>404错误</h1><p>你要找的页面不存在</p>');
                res.end();
            }else{
                res.writeHeader(200,{
                    'content-type' : 'text/html;charset="utf-8"'
                });
                res.write(data);//将index.html显示在客户端
                res.end();
    
            }
        })
    }).listen(8888);
    console.log('服务器开启成功');

    引入fs模块用来读取文件

    在项目目录下新建一个index.html  写入hello world

    运行 node server.js

    so easy一个简单http服务器就实现了

  • 相关阅读:
    补题报告 个人赛2020.4.12
    UCF Local Programming Contest 2017 2020.4.7
    比赛:ICPC Asia Taipei-Hsinchu Regional 2019 2020.4.1
    UCF Local Programming Contest 2016 2020.3.28
    Benelux Algorithm Programming Contest 2019 2020/3/21
    比赛名:Preliminaries for Benelux Algorithm Programming Contest 2019 时间2020.3.14
    【Scala】Scala使用scalikejdbc工具连接MySQL(推荐)
    【Scala】Scala使用JDBC连接Mysql/权限问题
    【异常】Specified key was too long;max key length is 767 bytes、解决由于HDFS格式化造成Hive数据全部丢失的问题
    【异常】Hive作业异常kill :Hadoop MapReduce Error
  • 原文地址:https://www.cnblogs.com/zimuzimu/p/6215729.html
Copyright © 2020-2023  润新知