网络基础知识(黑马教程笔记)-3-http协议(响应报文)

一,响应报文的产生

对于客户端发送的每个请求,服务器端需要告诉客户端,你这个请求到底是成功的,还是失败的。
上节课,主要讲的是请求报文,其实是一个对象,里面包含了请求的所有内容信息。
而这里,服务器端产生的响应报文,则是针对本次请求,所整合的所有服务器响应信息。比如客户端发送了请求,请求报文是生成了,那客户端如何知道请求成功还是失败?这就需要服务器来告诉客户端了。
在这里插入图片描述
可以在network里面查看状态码:此时是200
在这里插入图片描述
之前在操作请求报文时,都是对请求对象req进行操作,那么现在的响应,则需要对res对象进行操作了。

二,响应头中设置状态码

//定义服务器响应状态码
	res.writeHead(500)

这样之后运行app.js文件,创建服务器,然后刷新页面,网页的状态码就会变成500了。当我们不设置参数或者没有写这句代码时,默认为200,表示请求成功。
在这里插入图片描述

三,设置响应的内容解析格式。

在这里插入图片描述
默认情况下,是以文本显示的,所以之前的响应头信息是直接以文本的形式显示在 浏览器上面
现在更改为:

//用于创建网站服务器的模块
const http=require('http')
//app对象就是网站服务器对象
const app=http.createServer()

//当客户端有请求来得时候,执行这个事件
app.on('request',(req,res)=>{
	//获取请求方式,保存在require对象的method属性中,
	//它的属性值就是这次请求所用的请求方式
	//req.method
	// console.log(req.method)
	
	//获取请求地址
	//req.url
	
	//获取请求报文信息
	//req.headers
	// console.log(req.headers['accept'])
	
	
	//定义服务器响应状态码和内容解析格式,
	//两个参数,第一个状态码,第二个是对象,实际上存储的就是响应头里面的信息
	res.writeHead(200,{
		'content-type': 'text/html;charset=utf8',
		//以html格式解析响应内容,且编码格式为utf-8
	})
	
	
	//根据用户访问的地址不同,显示不同的界面
	// console.log(req.url)
	if (req.url == '/index' || req.url == '/'){
		res.end('<h3>我是成功请求之后的响应内容</h3>')
	}else if(req.url == '/list'){
		res.end('welcome to listpage')
	}else{
		res.end('not found')
	}	
	//根据不同的请求方式,服务器做出不同的响应
	if(req.method == 'POST'){
		res.end('post')
	}else if(req.method == 'GET'){
		res.end('get')
	}
	// res.end('<h2>hello world</h2>')
})
//还要监听端口,才能向外界提供服务
app.listen(3000)
console.log("网站服务器启动成功")

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值