Node Http模塊

在這裏插入圖片描述

Node Http模塊

我們可以使用 Node 創建一個服務器,在 Node 中專門提供了一個核心模塊:http

http 這個模塊的職責,就是幫助我們創建編寫服務器的

1、加載http核心模塊

var http = require('http');

2、使用http.createServer()方法創建了一個web服務器,返回一個Server實例

var server = http.createServer();

3、服務器要幹什麼?

  • 提供服務:對數據的服務
  • 發請求
  • 接收請求
  • 給個反饋 (發送響應)

4、簡單web服務器

http.server 是一個基於事件的 HTTP 服務器,所有的請求都被封裝到獨立的事件當中。

let http = require('http');
//創建web服務器,提供服務,處理客戶端的請求
//普通方式監聽
let server =  http.createServer((req,res)=>{
    //req客戶端請求的相關信息,res返回響應信息
    let url = req.url;
    //解決中文亂碼
    res.writeHead(200, {'Content-Type': 'text/plain;charset=utf-8'});
    res.end('訪問路徑:'+url);
}).listen(9000);
//request事件監聽
/*server.on('request', (req, res) => {
    console.log(req.url);
    //設置應答頭信息
    res.writeHead(200, { 'Content-Type': 'text/html' });
    res.write('HHHHH<br>');
});
server.listen(9000);*/
//當TCP建立連接的時候,該事件被觸發,提供了一個參數socket,爲net.socket的實例(底層協議對象)
server.on('connection',(req,socket,head)=>{
    console.log('有連接');
});

在瀏覽器通過http://localhost:9000/即可訪問:
在這裏插入圖片描述
5、http.ServerRequset

  http 請求分爲請求頭和請求體,如果請求的內容少的話就直接在請求頭協議完成之後立即讀取,請求體可能相對較長一點,需要一定的時間傳輸。因此提供了三個事件用於控制請求體傳輸:

  1. data:當請求體數據到來時,該事件被觸發,該事件一共一個參數chunk,表示接受到的數據。
  2. end:當請求體數據傳輸完成時,該事件被觸發,此後將不會再有數據到來。
  3. close:用戶當前請求結束時,該事件被觸發,不同於 end,如果用戶強制終止了傳輸,也會觸發 close。

serverRequest常用信息:

let http = require('http');
let server =  http.createServer((req,res)=>{
    //客戶端請求是否發送完成
    console.log(req.complete);
    //http協議版本
    console.log(req.httpVersion);
    //connnection
    console.log(req.socket);
    //http請求頭
    console.log(req.headers);
    //http請求方法
    console.log(req.method);
    res.writeHead(200,{'Content-Type':'text/plain'});
    res.write("hahahaha");
    res.end();
}).listen(9000);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章