這個是一個比較簡單的代碼
// 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對象,就可以獲取用戶提交的數據,也可以向用戶響應數據了
這四步就是基本的服務器啟動

這個時候瀏覽器會監聽8080端口,輸入http://localhost:8080,就可以看到響應Hello World

這里還有一個問題,如果我們訪問http://localhost:8080/xx,它的顯示如下:

這是因為在第三步寫了response.write('Hello World');不論訪問的什么,服務器響應的都會是Hello World,所以想要有不同響應,需要自己寫代碼去判斷。
這個時候我們還可以改一下,加入一點中文
response.write('Hello World!!你好世界');

問題就來了,出現了亂碼,這是因為編譯器默認編碼為UTF-8,而瀏覽器卻不這么認為。所以我們解決亂碼的思路為:服務器通過設置http響應報文頭。告訴瀏覽器使用相應的編碼來解析網頁,避免出現亂碼的情況
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響應報文頭告訴瀏覽器一些其他相關信息
