NodeJS-http模塊
使用的軟件VScode,--主要免費(fèi)
前置需求
需要安裝nodejs和配置相應(yīng)的環(huán)境變量
后面會用到對應(yīng)的npm包,安裝一個(gè)express的npm包


流程分析
對于該模塊,主要是模擬搭建一個(gè)web服務(wù)器的角色,如果有python的爬蟲經(jīng)歷來說,這個(gè)就理解起來比較簡單,nodejs中使用http模塊和python中的request模塊發(fā)送的都是http報(bào)文。接下來我們開始進(jìn)行進(jìn)行流程解析,首先我們進(jìn)行瀏覽器查詢網(wǎng)址。通常發(fā)起的是request中的get請求,如果對應(yīng)的服務(wù)器收到了,會返回對應(yīng)的狀態(tài)碼和信息,當(dāng)然這個(gè)模塊也可以進(jìn)行數(shù)據(jù)爬取。
狀態(tài)碼
如果得到狀態(tài)碼為200的響應(yīng)代表對我們的請求成功。
如果是404,那就代表找不到地址,404,代表地址出錯(cuò),說明自己的文件或者文件夾地址填寫出錯(cuò)。我的排查就比較簡單。每次輸出需要處理完的文件路徑或者將要自己通過拼接之后的路徑輸出,通常后者是典型的拼接錯(cuò)誤。
如果是304,說明自己電腦進(jìn)行了緩存數(shù)據(jù),可能是圖片也可能是文字等。
如果是500,代表服務(wù)器端報(bào)錯(cuò)。127.0.0.1:8080經(jīng)常爆bug。返回狀態(tài)碼500
進(jìn)行操作。
代碼如下
// 導(dǎo)入http模塊
const { response } = require('express')
const http=require('http')
const server=http.createServer((request,response)=>{
? ? if(request.url=='/favicon.ico')
? ? console.log('沒有圖標(biāo)');
? ? console.log('發(fā)起請求的電腦路徑:',request.url);
? ? // 編寫對應(yīng)的響應(yīng)的狀態(tài)碼。并設(shè)置返回的文本時(shí)html文本,瀏覽器會自己進(jìn)行辨識出入元素
? ? response.writeHead(200,{'Content-Type': 'text/html;Charset=utf-8'})
? ? response.end('<h1>我是h1標(biāo)題<h1>')
? ? console.log('有人訪問了服務(wù)器');
})
server.listen(8000,()=>{
? ? console.log('http://127.0.0.1:8000');
})
發(fā)起一次簡單的get請求。

發(fā)送一次get請求
上圖中可以看到我們使用瀏覽器查詢網(wǎng)址,起始查詢網(wǎng)址的過程也是一個(gè)重點(diǎn),以后我盡量記起來補(bǔ)上,看我記性,哈哈。肯定會有人有疑惑,問什么會產(chǎn)生兩次請求,第一第一次請求是我們請求這個(gè)網(wǎng)頁。第二個(gè)請求是什么?答案是圖標(biāo)icon,所以發(fā)起兩次請求,當(dāng)然post請求也是兩次請求,不過是post請求的檢驗(yàn)機(jī)制,為了更好的保證是可靠固定的網(wǎng)絡(luò)連接。至于icon結(jié)果的處理就是如果是圖片會有對應(yīng)的更新,如果沒有就圖片那就不管。這次單純的演示一下

你看這個(gè)頁面就產(chǎn)生了h1元素。并且返回了對應(yīng)的報(bào)文,我們在檢查中查看

接下來會有返回文件或者圖片,頁面等。如果有錯(cuò)誤請聯(lián)系我,謝謝。學(xué)習(xí)加油