聊城网站优化案例,在上海建网站多少钱,平面设计平台有哪些,汕头网页建站模板目录 一、概念二、请求报文的组成三、响应报文的组成四、创建http服务4.1 操作步骤4.2 注意事项 五、获取 HTTP 请求报文5.1 获取请求报文5.2 提取路径和查询字符串 六、设置 HTTP 响应报文七、MIME设置资源类型 一、概念
HTTP#xff08;hypertext transport protocol#… 目录 一、概念二、请求报文的组成三、响应报文的组成四、创建http服务4.1 操作步骤4.2 注意事项 五、获取 HTTP 请求报文5.1 获取请求报文5.2 提取路径和查询字符串 六、设置 HTTP 响应报文七、MIME设置资源类型 一、概念
HTTPhypertext transport protocol协议中文叫超文本传输协议 是一种基于TCP/IP的应用层通信协议 这个协议详细规定了 浏览器 和万维网 服务器 之间互相通信的规则。 协议中主要规定了两个方面的内容
客户端用来向服务器发送数据可以被称之为请求报文服务端向客户端返回数据可以被称之为响应报文
二、请求报文的组成
请求行请求头空行请求体
三、响应报文的组成 响应行 HTTP/1.1 200 ok 还有一些状态码参考https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status 响应头 Cache-Control:缓存控制 private 私有的只允许客户端缓存数据
Connection 链接设置
Content-Type:text/html;charsetutf-8 设置响应体的数据类型以及字符集,响应体为html字符集
utf-8
Content-Length:响应体的长度单位为字节空行 响应体 响应体内容的类型是非常灵活的常见的类型有 HTML、CSS、JS、图片、JSON
四、创建http服务
使用 nodejs 创建 HTTP 服务
4.1 操作步骤
//1. 导入 http 模块
const http require(http);
//2. 创建服务对象 create 创建 server 服务
// request 意为请求. 是对请求报文的封装对象, 通过 request 对象可以获得请求报文的数据
// response 意为响应. 是对响应报文的封装对象, 通过 response 对象可以设置响应报文
const server http.createServer((request, response) {//解决中文乱码response.setHeader(Content-Type,text/html;charsetutf-8)response.end(Hello HTTP server);
});
//3. 监听端口, 启动服务
server.listen(9000, () {console.log(服务已经启动, 端口 9000 监听中...);
});http.createServer 里的回调函数的执行时机 当接收到 HTTP 请求的时候就会执行 4.2 注意事项 命令行 ctrl c 停止服务 当服务启动后更新代码 必须重启服务才能生效 响应内容中文乱码的解决办法 response.setHeader(content-type,text/html;charsetutf-8);端口号被占用 Error: listen EADDRINUSE: address already in use :::90001关闭当前正在运行监听端口的服务 使用较多 2修改其他端口号 HTTP 协议默认端口是 80 。HTTPS 协议的默认端口是 443, HTTP 服务开发常用端口有 3000 808080909000
五、获取 HTTP 请求报文
想要获取请求的数据需要通过 request 对象
含义语法请求方法request.method请求版本request.httpVersion请求路径request.urlURL 路径require(‘url’).parse(request.url).pathnameURL 查询字符串require(‘url’).parse(request.url, true).query请求头request.headers请求体request.on(‘data’, function(chunk){})请求方法request.method request.on(‘end’, function(){});
注意事项
request.url 只能获取路径以及查询字符串无法获取 URL 中的域名以及协议的内容request.headers 将请求信息转化成一个对象并将属性名都转化成了『小写』关于路径如果访问网站的时候只填写了 IP 地址或者是域名信息此时请求的路径为『 / 』关于 favicon.ico这个请求是属于浏览器自动发送的请求
5.1 获取请求报文
//1. 导入http模块
const http require(http);
//2.创建服务对象 create 创建 server 服务
const server http.createServer((request,response){//1.获取请求方法console.log(request.method);//2.获取http版本console.log(request.httpVersion);//3.获取请求路径console.log(request.url);//4.获取请求头console.log(request.headers);// 响应内容中文乱码的解决办法response.setHeader(content-type,text/html;charsetutf-8);response.end(你好啊);
})
//3.监听端口启动服务
server.listen(8080,(){console.log(服务已经启动);
})5.2 提取路径和查询字符串
方法一:引入url模块
//1. 导入http模块
const http require(http);
//导入url模块
const url require(url);
//2.创建服务对象 create 创建 server 服务
const server http.createServer((request,response){//解析request.url// console.log(request.url);let res url.parse(request.url,true);//路径console.log(res.pathname);//查询字符串console.log(res.query.wd);response.end(url)})
//3.监听端口启动服务
server.listen(9000,(){console.log(服务已经启动);
})方法二实例化URL对象
//1. 导入http模块
const http require(http);
//2.创建服务对象 create 创建 server 服务
const server http.createServer((request,response){//实例化url对象let url new URL(request.url,http://127.0.0.1:9000);//路径console.log(url.pathname);//查询字符串console.log(url.searchParams.get(wd));response.end(url new )})
//3.监听端口启动服务
server.listen(9000,(){console.log(服务已经启动);
})六、设置 HTTP 响应报文
作用语法设置响应状态码response.statusCode设置响应状态描述response.statusMessage 用的非常少 设置响应头信息response.setHeader(‘头名’, ‘头值’)设置响应体response.write(‘xx’) or response.end(‘xxx’)
write 和 end 的两种使用情况
//1. write 和 end 的结合使用 响应体相对分散
response.write(xx);
response.write(xx);
response.write(xx);
response.end(); //每一个请求在处理的时候必须要执行 end 方法的
//2. 单独使用 end 方法 响应体相对集中
response.end(xxx);示例代码 //1.导入http模块
const http require(http);
//2.创建对象
const server http.createServer((request,response){//设置响应状态码response.statusCode 203;//响应状态描述response.statusMessage hello world//设置响应头response.setHeader(content-type,text/html;charsetutf-8);response.setHeader(test,[a,b,c]);//设置响应体 ,write可以写多次end只能出现一次response.write(write写入);response.write(write写入);response.write(write写入);response.end(end写入)})
//3.监听端口开启服务
server.listen(9000,(){console.log(服务已启动)
})七、MIME设置资源类型
//1.导入http模块
const http require(http);
//引入fs
const fs require(fs);
//引入path模块
const path require(path);
//mime类型数组
let mime {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.创建对象
const server http.createServer((request,response){let {pathname} new URL(request.url,http://127.0.0.1:9000)//拼接路径let filepath __dirname pathname;//异步fs读取fs.readFile(filepath,(err,data){if(err){response.end(响应失败);return;}//获取文件后缀let ext path.extname(filepath).slice(1);//获取mime类型let type mime[ext];type?response.setHeader(content-type,type;charsetutf-8):response.setHeader(content-type,application/octet-stream);response.end(data);})
})
//3.监听端口开启服务
server.listen(9000,(){console.log(服务已启动)
})
文章转载自: http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn http://www.morning.zbnts.cn.gov.cn.zbnts.cn http://www.morning.pangucheng.cn.gov.cn.pangucheng.cn http://www.morning.twfdm.cn.gov.cn.twfdm.cn http://www.morning.tgyzk.cn.gov.cn.tgyzk.cn http://www.morning.wzknt.cn.gov.cn.wzknt.cn http://www.morning.dmnqh.cn.gov.cn.dmnqh.cn http://www.morning.rwqk.cn.gov.cn.rwqk.cn http://www.morning.tpssx.cn.gov.cn.tpssx.cn http://www.morning.ktrdc.cn.gov.cn.ktrdc.cn http://www.morning.qqxmj.cn.gov.cn.qqxmj.cn http://www.morning.qtnmp.cn.gov.cn.qtnmp.cn http://www.morning.lhhkp.cn.gov.cn.lhhkp.cn http://www.morning.kryxk.cn.gov.cn.kryxk.cn http://www.morning.hrpbq.cn.gov.cn.hrpbq.cn http://www.morning.qlrtd.cn.gov.cn.qlrtd.cn http://www.morning.nzqqd.cn.gov.cn.nzqqd.cn http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn http://www.morning.wnwjf.cn.gov.cn.wnwjf.cn http://www.morning.qnywy.cn.gov.cn.qnywy.cn http://www.morning.mczjq.cn.gov.cn.mczjq.cn http://www.morning.xckqs.cn.gov.cn.xckqs.cn http://www.morning.rfldz.cn.gov.cn.rfldz.cn http://www.morning.jqjnx.cn.gov.cn.jqjnx.cn http://www.morning.wjqbr.cn.gov.cn.wjqbr.cn http://www.morning.sh-wj.com.cn.gov.cn.sh-wj.com.cn http://www.morning.spxk.cn.gov.cn.spxk.cn http://www.morning.gynlc.cn.gov.cn.gynlc.cn http://www.morning.tmfm.cn.gov.cn.tmfm.cn http://www.morning.bybhj.cn.gov.cn.bybhj.cn http://www.morning.brld.cn.gov.cn.brld.cn http://www.morning.xqffq.cn.gov.cn.xqffq.cn http://www.morning.rykn.cn.gov.cn.rykn.cn http://www.morning.klwxh.cn.gov.cn.klwxh.cn http://www.morning.wnnlr.cn.gov.cn.wnnlr.cn http://www.morning.ljcf.cn.gov.cn.ljcf.cn http://www.morning.mtmnk.cn.gov.cn.mtmnk.cn http://www.morning.czgtt.cn.gov.cn.czgtt.cn http://www.morning.zbnts.cn.gov.cn.zbnts.cn http://www.morning.jhrtq.cn.gov.cn.jhrtq.cn http://www.morning.rzcmn.cn.gov.cn.rzcmn.cn http://www.morning.rqqkc.cn.gov.cn.rqqkc.cn http://www.morning.mggwr.cn.gov.cn.mggwr.cn http://www.morning.cnxpm.cn.gov.cn.cnxpm.cn http://www.morning.qztsq.cn.gov.cn.qztsq.cn http://www.morning.ympcj.cn.gov.cn.ympcj.cn http://www.morning.lqzhj.cn.gov.cn.lqzhj.cn http://www.morning.mkkcr.cn.gov.cn.mkkcr.cn http://www.morning.czzpm.cn.gov.cn.czzpm.cn http://www.morning.cwskn.cn.gov.cn.cwskn.cn http://www.morning.rqkck.cn.gov.cn.rqkck.cn http://www.morning.rzpkt.cn.gov.cn.rzpkt.cn http://www.morning.lkhgq.cn.gov.cn.lkhgq.cn http://www.morning.qjfkz.cn.gov.cn.qjfkz.cn http://www.morning.fycjx.cn.gov.cn.fycjx.cn http://www.morning.jyznn.cn.gov.cn.jyznn.cn http://www.morning.lxjcr.cn.gov.cn.lxjcr.cn http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn http://www.morning.kpwdt.cn.gov.cn.kpwdt.cn http://www.morning.nftzn.cn.gov.cn.nftzn.cn http://www.morning.kwblwbl.cn.gov.cn.kwblwbl.cn http://www.morning.xmhpq.cn.gov.cn.xmhpq.cn http://www.morning.bpmnc.cn.gov.cn.bpmnc.cn http://www.morning.thrgp.cn.gov.cn.thrgp.cn http://www.morning.hxmqb.cn.gov.cn.hxmqb.cn http://www.morning.lhjmq.cn.gov.cn.lhjmq.cn http://www.morning.yrjxr.cn.gov.cn.yrjxr.cn http://www.morning.zgdnd.cn.gov.cn.zgdnd.cn http://www.morning.rwzkp.cn.gov.cn.rwzkp.cn http://www.morning.yrpd.cn.gov.cn.yrpd.cn http://www.morning.thpns.cn.gov.cn.thpns.cn http://www.morning.ztqyj.cn.gov.cn.ztqyj.cn http://www.morning.fbdkb.cn.gov.cn.fbdkb.cn http://www.morning.xmrmk.cn.gov.cn.xmrmk.cn http://www.morning.tntqr.cn.gov.cn.tntqr.cn http://www.morning.zrks.cn.gov.cn.zrks.cn http://www.morning.pxlql.cn.gov.cn.pxlql.cn http://www.morning.jydky.cn.gov.cn.jydky.cn http://www.morning.kszkm.cn.gov.cn.kszkm.cn