用node實現http服務器 一

    首先我們來了解一下當用戶瀏覽一個網頁的簡單動作,內部的具體過程:

    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的語句來進行頁面的執行。但是如果瀏覽器請求的內容很多的時候,全部都寫入該方法中,就不太靠譜了,那我們應該如何實現呢?詳情看下篇文章講解。



   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章