最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js中的HTTP請(qǐng)求與響應(yīng)詳解

 更新時(shí)間:2022年07月06日 10:48:02   作者:社會(huì)主義接班人  
本文詳細(xì)講解了Node.js中的HTTP請(qǐng)求與響應(yīng),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在C#、OC中也是客戶端發(fā)起一個(gè)請(qǐng)求,服務(wù)端作出響應(yīng)。我們可以把這個(gè)過(guò)程抽象理解 .

  • 1.客戶端給服務(wù)端發(fā)起請(qǐng)求相當(dāng)于向服務(wù)端寫(xiě)入一個(gè)流(writable)
  • 2.服務(wù)端讀取客戶端的流(readable)
  • 3.服務(wù)端向客戶端作出響應(yīng)相當(dāng)于向客戶端寫(xiě)入一個(gè)流(writable)
  • 4.客戶端讀取服務(wù)端的響應(yīng)(readable)

整個(gè)流程分為兩部分一是客戶端的處理而是服務(wù)端的處理.最主要的還是客戶端請(qǐng)求和服務(wù)端響應(yīng).

一、http.ClientRequest對(duì)象

它實(shí)現(xiàn)了writable流,可以使用它的所有功能。http模塊中使用http.request(options,callback)方法來(lái)生成該對(duì)象。

1.options主要包括以下幾個(gè)可選:

host :服務(wù)器域名或IP地址,默認(rèn)localhost

hostname:與host相同,但對(duì)url.parse()的支持優(yōu)于host.

port:端口

localAddress:網(wǎng)絡(luò)連接的本地接口

socketPath:Unix域套接字(使用host:port或socketPath)

method:請(qǐng)求方法 :GET、POST等默認(rèn)GET

path:請(qǐng)求的資源路徑默認(rèn)/.也可包括查詢字符串

headers:請(qǐng)求頭

auth:身份認(rèn)證

agent:代理.如果使用Agent,則請(qǐng)求默認(rèn)為Connection:keep-alive.可能的值有undefined,Agent,false

2.ClientRequest提供的事件與方法

事件:

response:當(dāng)從服務(wù)器收到該請(qǐng)求的響應(yīng)時(shí)發(fā)出。該回調(diào)處理程序接收一個(gè)IncomingMessage對(duì)象作為唯一的參數(shù)。

socket:當(dāng)一個(gè)套接字分配給該請(qǐng)求時(shí)發(fā)出。

connect:當(dāng)服務(wù)器響應(yīng)一個(gè)由CONNECT方法發(fā)起的一個(gè)請(qǐng)求時(shí)發(fā)出。如果該事件未被客戶端處理,那么該連接將關(guān)閉

upgrade:當(dāng)服務(wù)器響應(yīng)在其標(biāo)頭包括一個(gè)更新請(qǐng)求的請(qǐng)求時(shí)發(fā)出

continue:當(dāng)服務(wù)器發(fā)送一個(gè)100ContinueHTTP響應(yīng),指示客戶端發(fā)送請(qǐng)求正文時(shí)發(fā)出

方法:

write()、end()和writable流一樣

abort():終止請(qǐng)求。

setTimeout(timeout,[callback]):設(shè)置請(qǐng)求超時(shí)時(shí)間

setNoDelay([noDelay]):noDelay布爾值,true立即寫(xiě)入,false緩沖寫(xiě)入

setSocketKeepAlive([enable],[initualDelay]):?jiǎn)⒂煤徒脤?duì)客戶機(jī)請(qǐng)求的保持活動(dòng)功能。initualDelay指定最后一個(gè)數(shù)據(jù)包和第一個(gè)保持活動(dòng)請(qǐng)求之間的延遲。

二、http.ServerResponse對(duì)象

和http.ClientRequest對(duì)象一個(gè)也是實(shí)現(xiàn)了writable流。也可實(shí)現(xiàn)writable流的功能,另外還包括下面的事件屬性和方法。

事件或?qū)傩?

  • close:在Response.End()刷新響應(yīng)之前關(guān)閉時(shí)發(fā)出。
  • headersSent:布爾值.已發(fā)送為true.只讀。
  • sendDate:布爾值,true時(shí),Date標(biāo)頭自動(dòng)生成,并作為響應(yīng)的一部分發(fā)送
  • statusCode:無(wú)須顯示的寫(xiě)入標(biāo)頭來(lái)指定響應(yīng)狀態(tài)碼。

方法:

writeContinue():發(fā)送一個(gè)HTTP/1.1 100 Continue消息給客戶端,請(qǐng)求被發(fā)送的正文內(nèi)容

writeHead(statusCode,[reasonPhrase],[headers]):把一個(gè)響應(yīng)標(biāo)頭寫(xiě)入請(qǐng)求。statusCode參數(shù)是HTTP響應(yīng)狀態(tài)代碼,reasonPhrase是字符串,表示StatusCode的原因.headers是響應(yīng)標(biāo)頭對(duì)象。response.writeHead(200,'Success',{'Content-Length':body.length,'Content-Type':'text/plain'});

setTimeout(msecs,callback):設(shè)置客戶端連接的超時(shí)時(shí)間。

setHeader(name,value):設(shè)置標(biāo)頭值。

getHeader(name):獲取標(biāo)頭值。

removeHeader(name):移除標(biāo)頭。

addTrailers(headers):將http尾隨標(biāo)頭寫(xiě)入響應(yīng)的結(jié)束處。

三、客戶端響應(yīng)和服務(wù)端請(qǐng)求

上面一二主要是writable流的,readable流的包括客戶端響應(yīng)和服務(wù)端請(qǐng)求。它們都是一個(gè)對(duì)象:IncomingMessage對(duì)象。

IncomingMessage對(duì)象長(zhǎng)成什么樣子可以把它輸出來(lái)看.由于IncomingMessage對(duì)象對(duì)于我們開(kāi)發(fā)的來(lái)說(shuō)不經(jīng)常用,所以看看就好。

var http=require("http")
var options={
    hostname:'www.baidu.com',
    path:'',
    port:'80',
    method:'GET'
};
var  req=http.request(options,function(response){
    console.log(response);
});
req.end();

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入理解Commonjs規(guī)范及Node模塊實(shí)現(xiàn)

    深入理解Commonjs規(guī)范及Node模塊實(shí)現(xiàn)

    本篇文章主要介紹了深入理解Commonjs規(guī)范及Node模塊實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Node.js與Sails ~項(xiàng)目結(jié)構(gòu)與Mvc實(shí)現(xiàn)及日志機(jī)制

    Node.js與Sails ~項(xiàng)目結(jié)構(gòu)與Mvc實(shí)現(xiàn)及日志機(jī)制

    Sails是一個(gè)Node.js的中間架構(gòu),很方便的幫助我們搭建web應(yīng)用程序。還有node.js與Sails日志機(jī)制在本文中也講到了,需要的朋友可以一起學(xué)習(xí)下
    2015-10-10
  • 詳解autojs的nodejs編寫(xiě)UI技巧示例

    詳解autojs的nodejs編寫(xiě)UI技巧示例

    這篇文章主要為大家介紹了autojs的nodejs編寫(xiě)UI技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 基于node實(shí)現(xiàn)websocket協(xié)議

    基于node實(shí)現(xiàn)websocket協(xié)議

    這篇文章主要介紹了基于node實(shí)現(xiàn)websocket協(xié)議的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • nodejs npm install全局安裝和本地安裝的區(qū)別

    nodejs npm install全局安裝和本地安裝的區(qū)別

    這篇文章主要介紹了nodejs npm install 全局安裝和非全局安裝的區(qū)別,即帶參數(shù)-g和不帶參數(shù)-g安裝的區(qū)別,需要的朋友可以參考下
    2014-06-06
  • 原生nodejs使用websocket代碼分享

    原生nodejs使用websocket代碼分享

    本文給大家分享的是在原生的nodejs中如何使用websocket實(shí)現(xiàn)信息傳輸,非常實(shí)用,有需要的小伙伴可以參考下
    2018-04-04
  • 用nodejs搭建websocket服務(wù)器

    用nodejs搭建websocket服務(wù)器

    這篇文章主要介紹了用nodejs搭建websocket服務(wù)器,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • 簡(jiǎn)單模擬node.js中require的加載機(jī)制

    簡(jiǎn)單模擬node.js中require的加載機(jī)制

    大家都知道Node 采用的模塊化結(jié)構(gòu)是按照 CommonJS 規(guī)范,模塊與文件是一一對(duì)應(yīng)關(guān)系,即加載一個(gè)模塊,實(shí)際上就是加載對(duì)應(yīng)的一個(gè)模塊文件。這篇文章顯示簡(jiǎn)單的介紹了nodejs中require的加載機(jī)制,而后簡(jiǎn)單的模擬require函數(shù),有需要的朋友們下面來(lái)一起看看吧。
    2016-10-10
  • Node.js異步I/O學(xué)習(xí)筆記

    Node.js異步I/O學(xué)習(xí)筆記

    這篇文章主要介紹了Node.js異步I/O學(xué)習(xí)筆記,本文詳細(xì)講解了異步I/O的基本概念、Node的異步I/O、非I/O的異步API、事件驅(qū)動(dòng)與高性能服務(wù)器等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • Node Puppeteer圖像識(shí)別實(shí)現(xiàn)百度指數(shù)爬蟲(chóng)的示例

    Node Puppeteer圖像識(shí)別實(shí)現(xiàn)百度指數(shù)爬蟲(chóng)的示例

    本篇文章主要介紹了Node Puppeteer圖像識(shí)別實(shí)現(xiàn)百度指數(shù)爬蟲(chóng)的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02

最新評(píng)論

扎鲁特旗| 桃园县| 洛浦县| 泗洪县| 红安县| 定结县| 芷江| 鄂托克前旗| 灵山县| 新和县| 永川市| 东明县| 龙南县| 淮北市| 辛集市| 定襄县| 正定县| 城口县| 大同县| 长武县| 巫山县| 涟水县| 呼图壁县| 邵阳县| 阳原县| 常德市| 鸡东县| 平南县| 镇宁| 长垣县| 山阴县| 项城市| 拉孜县| 平乡县| 富宁县| 梧州市| 大名县| 原阳县| 商水县| 三台县| 靖远县|