HTTP模塊
含義 | 語法 | 重點掌握 |
---|---|---|
請求方法 | request.method | * |
請求版本 | request.httpVersion | |
請求路徑 | request.url | * |
URL 路徑 | require(‘url’).parse(request.url).pathname | * |
URL 查詢字符串 | require(‘url’).parse(request.url, true).query | * |
請求頭 | request.headers | * |
請求體 | request.on(‘data’, function(chunk){}),request.on(‘end’, function(){}); |
獲取請求行和請求頭
// 1、導入http模塊
const http=require('http')
// 2、創(chuàng)建服務對象
const server=http.createServer((request,response)=>{
response.end('hello http') //設置響應體
// 獲取請求的方法
console.log("request.method:",request.method)
// 獲取請求的url
console.log("request.url:",request.url) //只包含url中的路徑與查詢字符串
// 獲取http協(xié)議的版本號
console.log("request.httpVersion:",request.httpVersion)
// 獲取http的請求頭
console.log("request.headers:",request.headers);
console.log("request.headers.host",request.headers.host) //獲取單個的請求頭
})
// 3、監(jiān)聽端口,啟動服務
server.listen(9000,()=>{
console.log('服務已經(jīng)啟動...')
})
瀏覽器發(fā)送請求:
終端輸出內(nèi)容:
獲取請求體
//1、導入http模塊
const http=require('http')
//2、創(chuàng)建服務對象
const server=http.createServer((request,response)=>{
//1.聲明一個變量
let body=''
//2.綁定data事件
request.on('data',chunk => {
body+=chunk //進行加法運算時候,會將字節(jié)自動轉(zhuǎn)換為字符串進行加法運算
})
//3.綁定end事件
request.on('end',()=>{
console.log(body)
//響應
response.end('httpServer')
})
})
server.listen(9000,()=>{
console.log("服務器已經(jīng)啟動了...")
})
form表單
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="http://127.0.0.1:9000" method="post">
<input type="text" name="username"> <br>
<input type="password" name="password"> <br>
<input type="submit" value="提交">
</form>
</body>
</html>
-
啟動服務
-
瀏覽器打開form表單,輸入賬戶密碼,點擊提交
-
提交之后頁面跳轉(zhuǎn)鏈接
- 終端輸出url拼接字符串
獲取請求路徑和查詢字符串
方式一
const http=require('http')
//1、引入url模塊
const url=require('url')
const server = http.createServer((request,response)=>{
//2、解析request.url
const res=url.parse(request.url)
console.log("res",res)
// 路徑
console.log("res.pathname",res.pathname);
// 解析request.url 第二個參數(shù)設置為true
const resObj=url.parse(request.url,true)
console.log("resObj",resObj)
// 查詢字符串
console.log("resObj.query.keyword",resObj.query.keyword)
response.end('url')
});
server.listen(9000,()=>{
console.log("服務器已經(jīng)啟動......")
})
發(fā)送了兩個請求
輸出的也是兩個請求的內(nèi)容:
方式二
const http=require('http')
const server=http.createServer((request,response)=>{
// 實例化url對象
// let url=new URL('/search?a=100&b=200','http://127.0.0.1:9000')
let url=new URL(request.url,'http://127.0.0.1')
console.log("url",url)
//輸出路徑
console.log("url.pathname",url.pathname)
//輸出 keyword 查詢字符串
console.log("url.searchParams.get('keyword')",url.searchParams.get('keyword'))
response.end('url new')
})
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動...")
})
http請求練習
按照以下要求搭建 HTTP 服務
請求類型(方法) | 請求地址 | 響應體結(jié)果 |
---|---|---|
get | /login | 登錄頁面 |
get | /reg | 注冊頁面 |
const http=require('http')
const server = http.createServer((request,response)=>{
//獲取請求的方法
let {method} = request
//獲取請求的url路徑
let {pathname}=new URL(request.url,'http://127.0.0.1')
response.setHeader('content-type','text/html;charset=utf-8')
//判斷
if(method==='GET'&&pathname==='/login'){
//登錄的情形
response.end('登錄頁面')
}else if(method==="GET"&&pathname==='/reg'){ //register 注冊
response.end('注冊頁面')
}else{
response.end('Not Found')
}
});
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動...")
})
設置HTTP響應報文
作用 | 語法 |
---|---|
設置響應狀態(tài)碼 | response.statusCode |
設置響應狀態(tài)描述 | response.statusMessage (用的非常少) |
設置響應頭信息 | response.setHeader(‘頭名’, ‘頭值’) |
設置響應體 | response.write(‘xx’) response.end(‘xxx’) |
狀態(tài)碼
const http=require('http')
const server = http.createServer((request,response)=>{
//1、設置響應狀態(tài)碼
response.statusCode=205
response.end('response')
});
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動....")
})
2.
const http=require('http')
const server = http.createServer((request,response)=>{
//1、設置響應狀態(tài)碼
response.statusCode=205
response.statusCode=404
response.end('response')
});
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動....")
})
響應狀態(tài)描述
const http=require('http')
const server = http.createServer((request,response)=>{
//1、設置響應狀態(tài)碼
// response.statusCode=205
// response.statusCode=404
//2、設置響應狀態(tài)描述
response.statusMessage='iloveyou';
response.end('response')
});
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動....")
})
響應頭
const http=require('http')
const server = http.createServer((request,response)=>{
//1、設置響應狀態(tài)碼
// response.statusCode=205
// response.statusCode=404
//2、設置響應狀態(tài)描述
// response.statusMessage='iloveyou';
//3、響應頭
response.setHeader('content-type','text/html;charset=utf-8')
response.end('response')
});
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動....")
})
const http=require('http')
const server = http.createServer((request,response)=>{
//1、設置響應狀態(tài)碼
// response.statusCode=205
// response.statusCode=404
//2、設置響應狀態(tài)描述
// response.statusMessage='iloveyou';
//3、響應頭
// response.setHeader('content-type','text/html;charset=utf-8')
response.setHeader('Server','Node.js')
response.end('response')
});
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動....")
})
const http=require('http')
const server = http.createServer((request,response)=>{
//1、設置響應狀態(tài)碼
// response.statusCode=205
// response.statusCode=404
//2、設置響應狀態(tài)描述
// response.statusMessage='iloveyou';
//3、響應頭
// response.setHeader('content-type','text/html;charset=utf-8')
// response.setHeader('Server','Node.js')
response.setHeader('myServer','test test test')
response.end('response')
});
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動....")
})
const http=require('http')
const server = http.createServer((request,response)=>{
//1、設置響應狀態(tài)碼
// response.statusCode=205
// response.statusCode=404
//2、設置響應狀態(tài)描述
// response.statusMessage='iloveyou';
//3、響應頭
// response.setHeader('content-type','text/html;charset=utf-8')
// response.setHeader('Server','Node.js')
// response.setHeader('myServer','test test test')
response.setHeader('test',['a','b','c'])
response.end('response')
});
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動....")
})
- 還可以一起來
const http=require('http')
const server = http.createServer((request,response)=>{
//1、設置響應狀態(tài)碼
// response.statusCode=205
// response.statusCode=404
//2、設置響應狀態(tài)描述
// response.statusMessage='iloveyou';
//3、響應頭
response.setHeader('content-type','text/html;charset=utf-8')
response.setHeader('Server','Node.js')
response.setHeader('myServer','test test test')
response.setHeader('test',['a','b','c'])
response.end('response')
});
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動....")
})
響應體
const http=require('http')
const server = http.createServer((request,response)=>{
//1、設置響應狀態(tài)碼
// response.statusCode=205
// response.statusCode=404
//2、設置響應狀態(tài)描述
// response.statusMessage='iloveyou';
//3、響應頭
// response.setHeader('content-type','text/html;charset=utf-8')
// response.setHeader('Server','Node.js')
// response.setHeader('myServer','test test test')
// response.setHeader('test',['a','b','c'])
//4、設置響應體
response.write('how')
response.write('are')
response.write('you')
//一般設置了響應體之后就不設置end了,但是end只能有一個
response.end()
});
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動....")
})
HTTP響應練習
搭建 HTTP 服務,響應一個 4 行 3 列的表格,并且要求表格有隔行換色效果,且點擊單元格能高亮顯示文章來源:http://www.zghlxwxcb.cn/news/detail-830336.html
const http=require('http')
const server=http.createServer((request,response)=>{
response.end(`<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
table{
cursor: pointer;
}
td{
padding: 20px 40px;
}
table tr:nth-child(odd){
background-color:pink;
}
table tr:nth-child(even){
background-color: skyblue;
}
</style>
</head>
<body>
<table border="1" style="border-collapse: collapse">
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<script>
let tds=document.querySelectorAll('td')
tds.forEach(item=>{
item.οnclick=function (){
this.style.backgroundColor='lightcyan'
}
})
</script>
</body>
</html>
`)
})
server.listen(9000,()=>{
console.log("服務已經(jīng)啟動...")
})
文章來源地址http://www.zghlxwxcb.cn/news/detail-830336.html
到了這里,關于Nodejs基礎6之HTTP模塊的獲取請求行和請求頭、獲取請求體、獲取請求路徑和查詢字符串、http請求練習、設置HTTP響應報文、http響應練習的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!