node——簡單的服務器啓動+亂碼問題解決,響應報文頭

這個是一個比較簡單的代碼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響應報文頭告訴瀏覽器一些其餘相關信息

相關文章
相關標籤/搜索