node——request和response的常用對象


request(http.IncomingMessage)和response(http.ServerResponse)對象介紹

request:服務器解析用戶提交的http請求報文,將結果解析到request對象中,凡是要獲取和用戶請求的數據都可以通過request對象獲取

request對象常用類型,繼承自stream.Readable
request.headers請求報文頭
request.rawHeaders原生請求報文頭
request.httpVersion請求版本號
request.method請求方法
request.url請求路徑

response:在服務器端用來向用戶做出響應的對象,凡是需要向用戶(客戶端)響應操作,都需要通過response對象來進行

response.writeHead(statusCode[, statusMessage][, headers])

response.setHeader

response.statusCode

responsestatusMessage

response.write

 1.request

var http=require('http');
    http.createServer(function(req,res){
        //1.獲取所有請求報文頭
        //req.headers返回的是一個對象,里面返回了所有的請求報文頭
        console.log(req.headers);
        
        res.end('over');

    }).listen(9090,function(){
        console.log('http://localhost:9090');
    })

 

var http=require('http');
    http.createServer(function(req,res){

    

//request.rawHeaders返回的是一個數組,數組里保存的都是請求報文頭的字符串
console.log(req.rawHeaders);



        res.end('over');

    }).listen(9090,function(){
        console.log('http://localhost:9090');
    })

 

var http=require('http');
    http.createServer(function(req,res){
        
        
        
        //2.httpVersion
        //獲取請求的客戶端所使用的http版本
        console.log(req.httpVersion);
        
    
        res.end('over');

    }).listen(9090,function(){
        console.log('http://localhost:9090');
    })    

var http=require('http');
    http.createServer(function(req,res){
             //3.method
        //獲取客戶端請求使用的方法(POST,GET......)
        console.log(req.method);
        
        
        //4.url
        //獲取請求的路徑(不包含主機名,端口號,協議)
        console.log(req.url);

res.end('over');

    }).listen(9090,function(){
        console.log('http://localhost:9090');
    })

 

2.response

var http=require('http');
    http.createServer(function(req,res){
        

        //1.response.write(chunk[, encoding][, callback])
        //chunk可以是一個字符串或者一個buffer,第二個參數指定如何將它編寫出一個字節流,默認utf-8,當數據塊被刷新的時候,callback會調用
        res.write('hello world! 你好世界');
        res.write('hello world! 你好世界');


        
        

        

//每個請求都必須調用res.end
//結束請求,該方法通知服務器,所有請求頭和響應主體都以發送,服務器將視為已完成,可以考慮本次響應結束。
//res.end()要響應數據的話,數據必須是String或者Buffer類型
        res.end('over');

    }).listen(9090,function(){
        console.log('http://localhost:9090');
    })

但這樣會出現亂碼,所以需要加請求報文頭

//2.通過res.setHeader來設置響應報文頭,不過如果我們不設置響應報文頭,系統也會默認有響應報文頭,並且默認已經發送給了瀏覽器
        res.setHeader('Content-Type','text/plain;charset=utf-8');

//3.設置http響應狀態碼
        //res.statusCode設置http響應狀態碼
        //res.statusMessage設置http響應狀態碼對應的消息
        res.statusCode=404;
        res.statusMessage='NOT FOUND';

這個是響應狀態碼,我們需要不同的響應狀態碼來反饋給用戶信息,哪怕已經找到頁面

 

//4. res.writeHead()
        //直接向客戶端響應(寫入)http響應報文頭
        //建議在res.write()和res.end()之前調用
        //如果res.statusCode,res.statusMessage,res.setHeader和res.writeHead一起設置,但是內容不一樣,服務器會響應res.writeHead
        res.writeHead(404,'not found',{
            'Content-Type':'text/plain;charset=utf-8'
        })

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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