国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Node.js-http模塊服務(wù)端請求與響應(yīng)操作,請求報文與響應(yīng)報文

這篇具有很好參考價值的文章主要介紹了Node.js-http模塊服務(wù)端請求與響應(yīng)操作,請求報文與響應(yīng)報文。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

簡單案例創(chuàng)建HTTP服務(wù)端:

// 導(dǎo)入 http 模塊
const http = require("http");
// 創(chuàng)建服務(wù)對象
const server = http.createServer((request, response) => {
	// 設(shè)置編碼格式,解決中文亂碼問題
	response.setHeader("content-type", "text/html;charset=utf-8");
	// 設(shè)置響應(yīng)體
	response.end("歡迎訪問!");
})
// 監(jiān)聽8090端口,啟動服務(wù)
server.listen(8090, () => {
	console.log("服務(wù)已經(jīng)啟動...")
})

端口號被占用:
1.關(guān)閉當(dāng)前正在運(yùn)行監(jiān)聽端口的服務(wù)
2.修改其他的端口號

一、request 獲取請求方的相關(guān)信息

  • 獲取請求方式類型
// get、post
request.method();
  • 獲取請求的 url 地址
// 只包含 url 中路徑與查詢字符串
// /search?name=node&num=2
request.url
  • 通過實例化 URl 對象獲取路徑與查詢字符串
// 得到 URL 對象
let url = new URL(request.url, "http://192.168.0.1:8090");
// 得到路徑 => /search
console.log(url.pathname)
// 得到 name 查詢字符串 => node
console.log(url.searchParams.get("name"))
  • 獲取 http 協(xié)議的版本號
// 1.1
request.httpVersion
  • 獲取 http 的請求頭
request.headers

二、response 獲取響應(yīng)方的相關(guān)信息

響應(yīng)報文組成:

1.響應(yīng)行:包含:HTTP 版本號、響應(yīng)狀態(tài)碼、響應(yīng)狀態(tài)的描述。
2.響應(yīng)頭:一些附加信息。
3.響應(yīng)體:響應(yīng)格式有HTML、CSS、JavaScript、JSON、圖片、視頻等。

  • 設(shè)置響應(yīng)體內(nèi)容
const http = require("http");
const fs = require("fs");
const server = http.createServer((request, response) => {
	// 讀取文件內(nèi)容
	let resHtml = fs.readFileSync(__dirname + "/index.html");
	// 方式一:設(shè)置響應(yīng)體,可以多次調(diào)用
	response.write(resHtml);
	response.write("hello2");
	response.end();
	// 方式二:設(shè)置響應(yīng)體,只能調(diào)用一次
	response.end(resHtml);
});
// 監(jiān)聽8090端口,啟動服務(wù)
server.listen(8090, () => {
	console.log("服務(wù)已經(jīng)啟動...")
});
  • 設(shè)置響應(yīng)狀態(tài)碼
response.statusCode = 200;

Node.js-http模塊服務(wù)端請求與響應(yīng)操作,請求報文與響應(yīng)報文,node.js,node.js,http,網(wǎng)絡(luò)協(xié)議,http協(xié)議,node請求報文響應(yīng)報文

Node.js-http模塊服務(wù)端請求與響應(yīng)操作,請求報文與響應(yīng)報文,node.js,node.js,http,網(wǎng)絡(luò)協(xié)議,http協(xié)議,node請求報文響應(yīng)報文

  • 設(shè)置響應(yīng)頭
response.setHeader("content-type", "text/html;charset=utf-8");
  • 響應(yīng)不同靜態(tài)資源文件
const http = require("http");
const fs = require("fs");
const server = http.createServer((request, response) => {
	// 獲取請求url路徑
	let { pathname } = new URL(request.url, "http://192.168.0.1:8090");
	// 拼接資源文件路徑
	let filePath = __dirname + "/pages" + pathname;
	fs.readFile(filePath, (err, data) => {
		// 文件讀取失敗
		if(err){
			response.statusCode = 500;
			response.end('文件讀取失敗!');
			return
		}
		// 成功,響應(yīng)體內(nèi)容
		response.end(data);
	})
})

三、設(shè)置資源類型 (mime類型)

媒體類型(通常稱為 Multipurpose lnternet Mail Extensions 或 MIME 類型)是一種標(biāo)準(zhǔn),用來表示文檔、文件或字節(jié)流的性質(zhì)和格式。
HTTP 服務(wù)可以設(shè)置響應(yīng)頭 Content-Type 來表明響應(yīng)體的MIME 類型,瀏覽器會根據(jù)該類型決定如何處理資源。

const path = require("path");
// 1. 聲明一個變量
Let mimes = {
	html: 'text/html',
	css: 'text/css',
	js: 'text/javascript',
	png: 'image/png',
	jpg:'image/jpeg',
	gif:'image/gif',
	mp4: 'video/mp4',
	mp3: 'audio/mpeg',
	json: 'application/json'
}

// 2. 獲取文件后綴名
let ext = path.extname("資源文件路徑").slice(1);
// 3. 獲取文件后綴名對應(yīng)的 mime 類型
let type = mimes[ext];
// 判斷是否有對應(yīng)類型
type ? response.setHeader("content-type", type) : response.setHeader("content-type", "application/octet-stream")
  • 解決亂碼問題
// 判斷是否有對應(yīng)類型
if(type){
	if(ext === "html"){
		response.setHeader("content-type", type + ";charset=utf-8");
	}else{
		response.setHeader("content-type", type);
	}
}else{
	response.setHeader("content-type", "application/octet-stream");
}

對于末知的資源類型,可以選擇 application/octet-stream 類型,瀏覽器在遇到該類型的響應(yīng)時,會對響應(yīng)體內(nèi)容進(jìn)行獨(dú)立存儲,也就是我們常見的下載效果。文章來源地址http://www.zghlxwxcb.cn/news/detail-630685.html

到了這里,關(guān)于Node.js-http模塊服務(wù)端請求與響應(yīng)操作,請求報文與響應(yīng)報文的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【HTTP】URL結(jié)構(gòu)、HTTP請求和響應(yīng)的報文格式、HTTP請求的方法、常見的狀態(tài)碼、GET和POST有什么區(qū)別、Cookie、Session等重點知識匯總

    【HTTP】URL結(jié)構(gòu)、HTTP請求和響應(yīng)的報文格式、HTTP請求的方法、常見的狀態(tài)碼、GET和POST有什么區(qū)別、Cookie、Session等重點知識匯總

    目錄 URL格式 HTTP請求和響應(yīng)報文的字段? HTTP請求方法 常見的狀態(tài)碼 GET 和 POST 的區(qū)別 Cookie 和 Session ? :是用來分割URL的主體部分(通常是路徑)和查詢字符串(query string)查詢字符串是一組鍵值對的參數(shù) query string :是鍵值對的結(jié)構(gòu),分割鍵值對,=分割鍵和值 Content-Type

    2024年02月07日
    瀏覽(52)
  • 【node.js】03-http模塊

    【node.js】03-http模塊

    目錄 一、什么是http模塊 二、創(chuàng)建基本的WEB服務(wù)器 三、req請求對象 四、res響應(yīng)對象 五、根據(jù)不同的url響應(yīng)不同的JSON內(nèi)容 ????????http 模塊是 Node.js 官方提供的、用來創(chuàng)建 web 服務(wù)器的模塊。通過 http 模塊提供的 http.createServer() 方法,就能方便的把一臺普通的電腦,變成一

    2024年02月15日
    瀏覽(231)
  • node.js的http模塊

    node.js的http模塊

    http協(xié)議 :超文本傳輸協(xié)議(互聯(lián)網(wǎng)應(yīng)用最廣泛的協(xié)議之一) http請求方法: get獲取數(shù)據(jù) post新增數(shù)據(jù) put/patch更新數(shù)據(jù) delete刪除數(shù)據(jù) head/options/connect/trace URL 統(tǒng)一資源定位符,其本身也是一個字符串。 在網(wǎng)絡(luò)節(jié)點中,負(fù)責(zé)消費(fèi)資源的電腦,叫做客戶端。 負(fù)責(zé)對外提供網(wǎng)絡(luò)資源

    2024年02月08日
    瀏覽(91)
  • 【雕爺學(xué)編程】MicroPython手冊之內(nèi)置模塊 urequests:發(fā)送 HTTP 請求和處理響應(yīng)

    【雕爺學(xué)編程】MicroPython手冊之內(nèi)置模塊 urequests:發(fā)送 HTTP 請求和處理響應(yīng)

    MicroPython是為了在嵌入式系統(tǒng)中運(yùn)行Python 3編程語言而設(shè)計的輕量級版本解釋器。與常規(guī)Python相比,MicroPython解釋器體積小(僅100KB左右),通過編譯成二進(jìn)制Executable文件運(yùn)行,執(zhí)行效率較高。它使用了輕量級的垃圾回收機(jī)制并移除了大部分Python標(biāo)準(zhǔn)庫,以適應(yīng)資源限制的微控制

    2024年01月17日
    瀏覽(22)
  • Node.js 發(fā)起HTTP請求的5種方式

    Node.js 發(fā)起HTTP請求的5種方式

    HTTP(百度百科):? ?超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)是一個簡單的請求-響應(yīng)協(xié)議,它通常運(yùn)行在TCP之上。它指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得到什么樣的響應(yīng)。請求和響應(yīng)消息的頭以ASCII形式給出; ????????可以直接用這個模塊來發(fā)起?HTT

    2024年02月21日
    瀏覽(23)
  • Node.js http 模塊詳解:request 對象

    Node.js http 模塊詳解:request 對象

    前文介紹了 http 模塊的基本用法,主要就是調(diào)用 createServer 和 listen 方法來創(chuàng)建和啟動服務(wù)。要處理具體的 HTTP 請求,就要在 createServer 方法中寫點什么。本文來介紹處理請求的兩個核心對象之一的 request 。 HTTP 協(xié)議最早設(shè)計出來,僅僅為了獲取網(wǎng)絡(luò)上的某個 HTML 文檔。隨著后

    2024年02月08日
    瀏覽(98)
  • Node.js HTTP 模塊的內(nèi)存泄露問題

    Node.js HTTP 模塊的內(nèi)存泄露問題

    很久沒有逛社區(qū)了,晚上回來看了一下最近的情況,突然看到一個內(nèi)存泄露問題,作為一個 APM 開發(fā)者,自然想分析其中的原因。 下面介紹一下具體的問題??匆幌?demo。 Node.js v20.3.1 下執(zhí)行上面代碼(node --expose-gc demo.js)輸出如下。 可以看到內(nèi)存不斷在增長。下面來分析這

    2024年02月12日
    瀏覽(88)
  • 【Node.js學(xué)習(xí) day3——http模塊】

    【Node.js學(xué)習(xí) day3——http模塊】

    命令行 ctrl + c 停止服務(wù) 當(dāng)服務(wù)啟動后,更新代碼必須 重啟服務(wù)才能生效 響應(yīng)內(nèi)容中文亂碼的解決辦法 端口號被占用 關(guān)閉當(dāng)前正在運(yùn)行監(jiān)聽端口的服務(wù)(使用較多) 修改其他端口號 HTTP協(xié)議默認(rèn)端口是80。HTTP服務(wù)開發(fā)常用端口有3000,8080,8090,9000等。 想要獲取請求的數(shù)據(jù),需

    2024年02月02日
    瀏覽(22)
  • 在 Node.js 中發(fā)出 HTTP 請求的 5 種方法

    學(xué)習(xí)如何在 Node.js 中發(fā)出 HTTP 請求可能會讓人感到不知所措,因為有數(shù)十個可用的庫,每個解決方案都聲稱比上一個更高效。一些庫提供跨平臺支持,而另一些庫則關(guān)注捆綁包大小或開發(fā)人員體驗。 在這篇文章中,我們將探討在 Node.js 中發(fā)出 HTTP 請求的五種最流行的方法,并

    2024年02月04日
    瀏覽(23)
  • Node.js-fs、path、http模塊

    Node.js-fs、path、http模塊

    Node.js 作為一個JavaScript 的運(yùn)行環(huán)境,僅僅提供了基礎(chǔ)的功能和 AP1。然而,基于 ode.s 提供的這些基礎(chǔ)能,很多強(qiáng)大的工具和框架如雨后春筍,層出不窮,所以學(xué)會了 Nodejs,可以讓前端程序員勝任更多的工作和崗位: 基于Express 框架(http://www.expressjs.com.cn/),可以快速構(gòu)建 Web 應(yīng)用

    2024年02月04日
    瀏覽(51)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包