日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Nodejs中setHeaderwriteHead有什么區別?下面本篇文章給大家對比一下setHeader和writeHead,聊聊它們的區別,希望對大家有所幫助!


簡單對比Node中的setHeader和writeHead,聊聊差異


今天在學習Node的時候發現Node/http中的setHeaderwriteHead很相似,都可以設置響應頭部,我們來詳細的說說吧!

setHeader

參數

response.setHeader(name, value)

name 屬性

value 屬性值

返回 http.ServerResponse 返回響應對象


作用

為響應頭部設置單個屬性。


注意

只能一個一個設置屬性

重復設置一個屬性會替換之前的設置

設置包含無效字符的屬性字段名稱或值將導致拋出 TypeError

示例

reponse.setHeader('Content-Type', 'text/html')
reponse.setHeader('Set-Cookie', ['type=ninja', 'language=javascript'])


重復設置一個屬性

// 返回 content-type = text/html1
reponse.setHeader('Content-Type', 'text/html')
reponse.setHeader('Content-Type', 'text/html1')

簡單對比Node中的setHeader和writeHead,聊聊差異

writeHead

參數

response.writeHead(statusCode, [statusMessage], [headers])

statusCode http狀態碼

statusMessage 狀態信息(可選)

headers | 屬性對象或數組(可選)

返回 http.ServerResponse 返回響應對象


簡單對比Node中的setHeader和writeHead,聊聊差異


作用

setHeader作用相同

注意

可以設置多個屬性,setHeader只能設置一個

只能調用一次

必須在response.end()之前調用

設置包含無效字符的屬性字段名稱或值將導致拋出 TypeError


示例

因為writeHead返回的是一個ServerResponse對象,我們可以進行鏈式調用

const body = 'hello world';
response
.writeHead(200, {
  'Content-Length': Buffer.byteLength(body),
  'Content-Type': 'text/plain'
})
.end(body);

這里的Content-Length是以字節為單位,而不是字符。Buffer.byteLength()就是來確定正文的長度。

Nodejs不會檢查Content-Length和已經傳輸的正文長度是否一致

同時使用setHeader和writeHead

// 返回 content-type = text/plain
const server = http.createServer((req, res) => {
  res.setHeader('Content-Type', 'text/html');
  res.setHeader('X-Foo', 'bar');
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('ok');
});

writeHead 的優先級比 setHeader 高,并且writeHead只能調用一次,所以在調用時,先考慮好哪些頭不常改變后,再調用writeHead

如果已經調用了setHeader設置標頭,那么他會傳給writeHead合并

如果調用了此方法,且還沒調用 response.setHeader()),則會直接將提供的標頭值寫入網絡通道且內部不緩存。在標頭上 response.getHeader()) 不會產生預期的結果。 如果需要逐步填充標頭并在未來進行潛在的檢索和修改,則改用 response.setHeader()

總結

setHeader 只能一個一個設置標頭,writeHead可以一下設置很多

setHeader 可以重復調用,writeHead只能調用一次

同時出現setHeader和writeHead,setHeader會合并到writeHead,并且writeHead優先級高

writeHead 可以設狀態碼和狀態信息,setHeader不能設置,只能設置標頭


分享到:
標簽:Node.js setHeader和writeHead差異
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定