首頁技術文章正文

使用HTTP模塊構建Web服務器

更新時間:2021-12-01 來源:黑馬程序員 瀏覽量:

IT培訓班

下面通過一個案例來演示Node.js中使用HTTP模塊構建Web服務器的過程,具體步驟如下:


(1)在Course/code目錄下創(chuàng)建目錄chapter07。

(2)在chapter07目錄下創(chuàng)建文件demo7-1.js,并在該文件下添加如下代碼demo7-1.js:

/**
 * 使用HTTP構建Neb服務器
 */
var http = require('http');
// 1.創(chuàng)建一個HTTP服務器
var server = http.createServer();
// 2.監(jiān)聽 請求(request)事件
// request就是一個可讀流,用來獲取當前與服務器連接的客戶端的一些請求報文數(shù)據(jù)
// response就是一個可寫流,用來給客戶端Socket發(fā)送消息,或者用來發(fā)送響應報文
server.on('request', function(request, response) {
    // 使用HTTP發(fā)送響應數(shù)據(jù)時,HTTP服務器會自動把數(shù)據(jù)通過HTTP協(xié)議包裝為一個
    // 響應報文然后發(fā)送到Socket
    response.write('hello world');
    // 在結束響應之前,可以多次向客戶端發(fā)送數(shù)據(jù)
    response.write('hello itheima');
    // 對于HTTP請求響應模型來說,它們的請求和響應是一次性的
    // 也就是說,每一次請求都必須結束響應
    // 標識斷開當前連接
    response.end();
    // 在一次HITP請求響應模型中,當結束了響應時,就不能繼續(xù)發(fā)送數(shù)據(jù),以下消息不會顯示
});
//3.監(jiān)聽端口
server.listen(3000, function()(console.log('server is listening at port 3000');
 });

在上述代碼中,第6行使用http.createServer()函數(shù)創(chuàng)建服務器對象server。在第10行監(jiān)聽server對象的request事件,request事件回調(diào)函數(shù)的參數(shù)為request和response,在第12行和第14行分別使用response.write()函數(shù)向客戶端發(fā)送數(shù)據(jù),在結束響應之前可以多次發(fā)送。第18行使用response.end()函數(shù)結束響應,結束響應后不能再繼續(xù)發(fā)送數(shù)據(jù)。第22~24行監(jiān)聽端口3000,由于在本機測試,IP地址127.0.0.1。


打開終端,執(zhí)行demo7-1.js,執(zhí)行結果如圖7-10所示。

打開Chrome瀏覽器,在地址欄中輸入http://127.0.0.1:3000,按【Enter】鍵,訪問結果如圖7-11所示。

1638340059503_web服務器.png


在圖7-11中可以看出,兩次調(diào)用response.write(O函數(shù)的結果全部輸出,使用HTTP構建Web服務器已經(jīng)成功。






猜你喜歡:

Web API是干什么的?Web API與API的關系

什么是http超文本傳輸協(xié)議?工作原理是什么?

HTTPS的優(yōu)缺點有哪些?

HTTP通信機制是如何建立通信的?

黑馬程序員HTML前端與移動開發(fā)培訓

分享到:
在線咨詢 我要報名
和我們在線交談!