首先我們來了解一下當用戶瀏覽一個網頁的簡單動作,內部的具體過程:
1)用戶通過瀏覽器發送一個http請求到指定的主機
2)服務器接收到該請求,對該請求進行分析和處理
3)服務器處理完成以後,返回對應的數據到用戶機器
4)瀏覽器接受服務器返回的數據,並根據接收到的進行分析和處理。
即由客戶端發送一個http請求到指定的服務器->服務器接受並處理請求->返回數據
用node來實現http服務器最基本的有一下幾步:
1:用require引入http模塊;
2:調用http的createServer方法,就創建了一個server對象
createServer方法 有一個回調函數,作用:當有請求發給服務器的時候,這個回調函數就會被執行
該回調函數有兩個參數:
(1) 參數request爲瀏覽器發送過來的數據,
(2) 參數response爲服務器對瀏覽器的請求進行的響應。
上面的兩個參數也提供了一些方法,我列舉一些常用的:
(1)參數request對象:
httpVertion:使用http的版本
header:請求頭信息的數據
url:請求的地址
method:請求的方法
(2)參數response對象:
response.write(chunk[, encoding][, callback]) :發送一個數據塊到響應正文中
response.end([data][, encoding][, callback]) :當所有的正文和頭信息發送完成之後,調用該方法告訴服務器數據已經全部發送完成了,這個方法在每 次完成信息發送之後以後必須調用,並且是最後調用
response.end([data][, encoding][, callback]) :該屬性用來設置返回的狀態碼
response.writeHead(statusCode[, statusMessage][, headers])這個方法只能在當前請求使用一次,並且要在end()方法之前。
response.setHeader(name, value):設置返回頭信息
3:用listen方法監聽端口,8080.端口代表了在服務器硬件或者系統中的運行的一個程序。
localhost(80)。80是http的默認端口。
瀏覽器中訪問的url:localhost:8080
下面用案例來看下是如何實現:
在webstrom中運行之後,在瀏覽器中輸入localhost:8080,方爲結果如下:
除了在response.end()方法裏面寫入返回瀏覽器的數據,也可以在調用response.end()方法前調用response.write()方法來寫入數據。
當然response.end()方法裏面也可以寫入一些複雜的javaScript的語句來進行頁面的執行。但是如果瀏覽器請求的內容很多的時候,全部都寫入該方法中,就不太靠譜了,那我們應該如何實現呢?詳情看下篇文章講解。