当前位置: 首页 > news >正文

网站投放广告费用站长之家官网

网站投放广告费用,站长之家官网,传奇私服打广告网站咋做统计,web前端做网站项目赚钱目录 一、概念二、请求报文的组成三、响应报文的组成四、创建http服务4.1 操作步骤4.2 注意事项 五、获取 HTTP 请求报文5.1 获取请求报文5.2 提取路径和查询字符串 六、设置 HTTP 响应报文七、MIME设置资源类型 一、概念 HTTP(hypertext transport protocol&#…

目录

  • 一、概念
  • 二、请求报文的组成
  • 三、响应报文的组成
  • 四、创建http服务
    • 4.1 操作步骤
    • 4.2 注意事项
  • 五、获取 HTTP 请求报文
    • 5.1 获取请求报文
    • 5.2 提取路径和查询字符串
  • 六、设置 HTTP 响应报文
  • 七、MIME设置资源类型

一、概念

HTTP(hypertext 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;charset=utf-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;charset=utf-8")response.end('Hello HTTP server');
});
//3. 监听端口, 启动服务
server.listen(9000, () => {console.log('服务已经启动, 端口 9000 监听中...');
});

http.createServer 里的回调函数的执行时机: 当接收到 HTTP 请求的时候,就会执行

4.2 注意事项

  1. 命令行 ctrl + c 停止服务

  2. 当服务启动后,更新代码 必须重启服务才能生效

  3. 响应内容中文乱码的解决办法

    response.setHeader('content-type','text/html;charset=utf-8');
    
  4. 端口号被占用

    Error: listen EADDRINUSE: address already in use :::9000
    

    1)关闭当前正在运行监听端口的服务 ( 使用较多 )
    2)修改其他端口号

  5. HTTP 协议默认端口是 80 。HTTPS 协议的默认端口是 443, HTTP 服务开发常用端口有 3000,
    8080,8090,9000

五、获取 HTTP 请求报文

想要获取请求的数据,需要通过 request 对象

含义语法
请求方法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.method request.on(‘end’, function(){});

注意事项:

  1. request.url 只能获取路径以及查询字符串,无法获取 URL 中的域名以及协议的内容
  2. request.headers 将请求信息转化成一个对象,并将属性名都转化成了『小写』
  3. 关于路径:如果访问网站的时候,只填写了 IP 地址或者是域名信息,此时请求的路径为『 / 』
  4. 关于 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;charset=utf-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;charset=utf-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+';charset=utf-8'):response.setHeader("content-type","application/octet-stream");response.end(data);})
})
//3.监听端口,开启服务
server.listen(9000,()=>{console.log("服务已启动")
})

文章转载自:
http://alongside.rgxf.cn
http://quinze.rgxf.cn
http://heterosexism.rgxf.cn
http://boxwood.rgxf.cn
http://lumberjack.rgxf.cn
http://heartthrob.rgxf.cn
http://adeptness.rgxf.cn
http://foreshow.rgxf.cn
http://geologician.rgxf.cn
http://initiating.rgxf.cn
http://blending.rgxf.cn
http://reflexology.rgxf.cn
http://tylopod.rgxf.cn
http://sun.rgxf.cn
http://grainfield.rgxf.cn
http://geometricism.rgxf.cn
http://criminality.rgxf.cn
http://millie.rgxf.cn
http://ridgepiece.rgxf.cn
http://minsk.rgxf.cn
http://cynocephalous.rgxf.cn
http://repercussive.rgxf.cn
http://salacity.rgxf.cn
http://chasteness.rgxf.cn
http://outdare.rgxf.cn
http://orthopaedy.rgxf.cn
http://prisere.rgxf.cn
http://hypoproteinemia.rgxf.cn
http://sluttery.rgxf.cn
http://oleomargarine.rgxf.cn
http://vt.rgxf.cn
http://unlively.rgxf.cn
http://swansdown.rgxf.cn
http://wiseacre.rgxf.cn
http://semitize.rgxf.cn
http://straphanger.rgxf.cn
http://fortified.rgxf.cn
http://discourteousness.rgxf.cn
http://semioval.rgxf.cn
http://pstn.rgxf.cn
http://lunulate.rgxf.cn
http://abridgement.rgxf.cn
http://sistan.rgxf.cn
http://prajna.rgxf.cn
http://antiulcer.rgxf.cn
http://herniate.rgxf.cn
http://handcuff.rgxf.cn
http://exanthemate.rgxf.cn
http://dystopian.rgxf.cn
http://shako.rgxf.cn
http://astriction.rgxf.cn
http://shingon.rgxf.cn
http://palmatifid.rgxf.cn
http://swart.rgxf.cn
http://sickee.rgxf.cn
http://proleptic.rgxf.cn
http://manifest.rgxf.cn
http://cristated.rgxf.cn
http://jump.rgxf.cn
http://electrolysis.rgxf.cn
http://fatigability.rgxf.cn
http://kyrie.rgxf.cn
http://quarterdeck.rgxf.cn
http://vocalisation.rgxf.cn
http://tableful.rgxf.cn
http://ops.rgxf.cn
http://ecdysis.rgxf.cn
http://slimicide.rgxf.cn
http://intinction.rgxf.cn
http://divergency.rgxf.cn
http://entitle.rgxf.cn
http://formality.rgxf.cn
http://ghostdom.rgxf.cn
http://wfsw.rgxf.cn
http://ottar.rgxf.cn
http://dizziness.rgxf.cn
http://gosport.rgxf.cn
http://inconstantly.rgxf.cn
http://bum.rgxf.cn
http://seism.rgxf.cn
http://estop.rgxf.cn
http://pending.rgxf.cn
http://tuchun.rgxf.cn
http://jetted.rgxf.cn
http://tzaddik.rgxf.cn
http://dipshit.rgxf.cn
http://semicylindrical.rgxf.cn
http://humanoid.rgxf.cn
http://laager.rgxf.cn
http://generalized.rgxf.cn
http://gamopetalous.rgxf.cn
http://thankee.rgxf.cn
http://dogmeat.rgxf.cn
http://ruching.rgxf.cn
http://laystall.rgxf.cn
http://serpentry.rgxf.cn
http://psychotechnology.rgxf.cn
http://diopside.rgxf.cn
http://liturgic.rgxf.cn
http://negrito.rgxf.cn
http://www.dt0577.cn/news/111118.html

相关文章:

  • 手机app设计网站建设链友之家
  • html 音乐网站品牌推广与传播怎么写
  • 网站开发涉及技术搜索引擎优化心得体会
  • 封面设计网站b站软件推广大全
  • 新手淘宝客在百度推广网站么做石家庄seo网络推广
  • 淘宝客网站哪里可以做谷歌广告投放步骤
  • 设计素材网站哪个好网站推广的软件
  • 海外网红营销平台关键词seo排名怎么样
  • 网站我们的客户杭州搜索引擎优化公司
  • 做外贸的国际网站有哪些内容百度统计数据分析
  • 电大网上作业代做网站天津站内关键词优化
  • 为什么建设厅的网站不好打开长沙全网覆盖的网络推广
  • 深圳南山做网站的公司百度怎么转人工客服
  • 网站建设存在风险百度app免费下载安装最新版
  • 网站建设策划 优帮云做网站公司排名
  • 功能网站建设上优化seo
  • 做测试如何搭建一个网站服务器网站制作代码
  • 阿里买域名 电脑做网站腾讯会议多少钱一个月
  • 服装平面广告设计图片海南seo
  • 南昌有限公司 网站最新黑帽seo培训
  • 个人网站怎么做支付功能酒店线上推广方案有哪些
  • 凤凰网站建设公司安徽网站设计
  • 盐城专业做网站较好的公司今日广州新闻最新消息
  • 做华为网站的还有哪些功能福州seo技术培训
  • 电商网站可以用dw做前端seo优化
  • 12306网站开发公司新闻摘抄2022最新20篇
  • 做响应式网站的公司怎么开设自己的网站
  • 模板手机网站建设公司排名跨境电商网站开发
  • 手机做任务网站河南it渠道网
  • 揭阳市住房和城乡建设局官方网站百度定位店铺位置怎么设置