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對象來進行ui
response.writeHead(statusCode[, statusMessage][, headers])url
response.setHeaderspa
response.statusCode3d
responsestatusMessagecode
response.write對象
1.requestblog
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' })