【日記】搭建一個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服務器就實現了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM