這個是一個比較簡單的代碼html
// 1。加載hrrp模塊 var http=require('http'); // 2.建立一個http服務對象 var server=http.createServer(); // 3.監聽用戶請求的事件(request) server.on('request',function(request,response){ response.write('Hello World');//要響應 // 對於每個請求服務器必須結束響應,不然客戶端(瀏覽器)會一直等待服務器響應 response.end(); }); // 4.啓動服務 server.listen(8080,function(){ console.log('服務器啓動,請訪問:http://localhost:8080'); });
在第三步中:瀏覽器
request裏面包含了用戶請求中全部的內容,經過request能夠獲取用戶提交過來的全部數據
response用來向用戶響應全部數據,當服務器要想客戶端響應數據的時候必須使用response對象
有了request對象和response對象,就能夠獲取用戶提交的數據,也能夠向用戶響應數據了服務器
這四步就是基本的服務器啓動ui
這個時候瀏覽器會監聽8080端口,輸入http://localhost:8080,就能夠看到響應Hello World編碼
這裏還有一個問題,若是咱們訪問http://localhost:8080/xx,它的顯示以下:spa
這是由於在第三步寫了response.write('Hello World');不論訪問的什麼,服務器響應的都會是Hello World,因此想要有不一樣響應,須要本身寫代碼去判斷。code
這個時候咱們還能夠改一下,加入一點中文server
response.write('Hello World!!你好世界');
問題就來了,出現了亂碼,這是由於編譯器默認編碼爲UTF-8,而瀏覽器卻不這麼認爲。因此咱們解決亂碼的思路爲:服務器經過設置http響應報文頭。告訴瀏覽器使用相應的編碼來解析網頁,避免出現亂碼的狀況htm
response.setHeader('Content-Type','text/ plain;charset=utf-8');
response.write('Hello World!!你好世界');
咱們在代碼里加入請求頭後,瀏覽器能夠正常識別中文了對象
這時候再變一下
response.setHeader('Content-Type','text/plain;charset=utf-8'); response.write('<h1>Hello World!!你好世界</h1>');
瀏覽器原本來本的將內容給出,這是由於text/plain告訴瀏覽器這個是純文本的,若是咱們但願瀏覽器能夠將內容識別爲html,並解析出來,能夠這樣寫text/html,text/html告訴瀏覽器這個是html
response.setHeader('Content-Type','text/html;charset=utf-8'); response.write('<h1>Hello World!!你好世界</h1>');
總的來講:http響應報文頭告訴瀏覽器一些其餘相關信息