Node中的http模組

來源:互聯網
上載者:User

標籤:

         通過Node模組,我們可以實現用戶端和伺服器端。這篇文章主要研究如何利用http和一些相關模組構建用戶端和伺服器端代碼。讀完本文,將能夠實現client向server發送資料,而server將資料原樣返回。

***********************************************************************************

伺服器端

          首先介紹幾個方法。

  • http的createServer方法

           var server = http.createServer(requestListener(request,response)),這個方法做了兩件事情:1. 建立伺服器;2.定義了收到請求後(請求到來時)伺服器如何處理,request指的是用戶端發過來的請求(輸入資料流),response指伺服器對用戶端的響應(輸出資料流)。

          通過request, 我們可以得到請求的相關資訊。request.method代表請求的方法名(post / get / delete / put...), request.url代表請求的路徑名(不包含hostname和port),request.headers返回要求標頭部對象,而request.httpVersion是請求的http版本號碼。request.headers裡包含這十分豐富的資訊,例如: 

{ host: ‘localhost:8000‘, //主機名稱和連接埠號碼  connection: ‘keep-alive‘,   ‘cache-control‘: ‘max-age=0‘,//緩衝相關  accept: ‘text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8‘, //用戶端能夠接收的媒體類型(MIME)和優先順序,預設為1;表示優先接受text/html、application/                                                                  //xhtml+xml、image/webp類型(q=1),其次為application/xml類型(q=0.9),如果這些都沒有,那就隨便什麼類型了(q=0.8)‘user-agent‘: ‘Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36‘,//用戶端類型,表示為chrome案頭板  ‘accept-encoding‘: ‘gzip, deflate, sdch‘,//用戶端支援的內容壓縮編碼格式  ‘accept-language‘: ‘en-US,en;q=0.8‘,//用戶端使用的語言及其優先順序 }

        通過response,可以設定響應部分。response.writeHead(statusCode, statusText, options)方法可以設定響應狀態代碼和描述資訊,在options中可以添加自訂頭部或者給頭部賦值。writeHead和setHeader不同,前者是直接把回應標頭部發送出去了,而後者只是設定,所以一旦使用了writeHead,接下來想再次修改頭部就不可能了,比如在writeHead之後想要通過getHeader("name")或者removeHeader("name")是不可能成功的,因為已經把頭髮送出去了,如果真的想這麼做,就請用setHeader。用法如下:

         response.writeHead(200, "quite good", {"name":"test", “content-type":"application/json"});                        response.setHeader("name","test");   response.setHeader("age","16")

writeHead還有一個有用的用法,就是設定重新導向。response.writeHead(301, "moved forever", {location: "http://www.baidu.com"}), 如果Client Access Server的地址,就會被導航到baidu。

  •  server的listen方法

           server.listen(port, hostname, queue, callback),port是伺服器監聽的連接埠號碼,hostname為伺服器主機名稱,預設為localhost,queue為隊列中等待的串連數上限(預設為511),callback為伺服器成功啟動(伺服器啟動時)的回呼函數。一般情況下,hostname和queue就採用預設值。

*****************************************************************************************

           用戶端

       用戶端要完成的是向伺服器發送請求。

Node中的http模組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.