(24)request的结构
这里指的是发送的结构:
先上代码:
var http = require("http"); var util = require("util"); var server = new http.Server(); server.on("request", function (req, res) { res.writeHead(200, {'Content-type': 'text/html;charset = utf8'}); res.write("<h1>这里是一个头</h1>"); res.write("是否完成:" + req.complete); res.write("</br>Http版本协议:" + req.httpVersion); res.write("</br>请求方法:" + req.method); res.write("</br>原始请求路径:" + req.url); res.write("</br>请求头:" + util.inspect(req.headers)); //将其转为字符串 res.write("</br>请求尾:" + util.inspect(req.trailers)); res.write("</br>当前连接套接字:" + req.connetion); res.write("</br>上面的别名:" + req.socket); res.write("</br>client属性的别名:" + req.client); res.end(); }) server.listen(80); console.log("The server begin");
结果为:
这里是一个头
是否完成:false
Http版本协议:1.1
请求方法:GET
原始请求路径:/
请求头:{ host: '127.0.0.1', connection:'keep-alive', 'cache-control': 'max-age=0', 'upgrade-insecure-requests': '1','user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36', accept:'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','accept-encoding': 'gzip, deflate, sdch', 'accept-language': 'zh-CN,zh;q=0.8' }
请求尾:{}
当前连接套接字:undefined
上面的别名:[object Object]
client属性的别名:[objectObject]
另外,请求头是一个对象,因此可以列出他的属性,使用for in遍历之,如代码:
var http = require("http"); var util = require("util"); var server = new http.Server(); server.on("request", function (req, res) { res.writeHead(200, {'Content-type': 'text/html;charset = utf8'}); for (var i in req.headers) { res.write("req.headers[" + i + "]: " + req.headers[i] + "</br>") } res.end(); }) server.listen(80); console.log("The server begin");
结果:
req.headers[host]: 127.0.0.1
req.headers[connection]: keep-alive
req.headers[cache-control]: max-age=0
req.headers[upgrade-insecure-requests]: 1
req.headers[user-agent]: Mozilla/5.0 (Windows NT 6.1; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36
req.headers[accept]: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
req.headers[accept-encoding]: gzip, deflate, sdch
req.headers[accept-language]: zh-CN,zh;q=0.8
另外,很奇怪的是,我试着使用req.headers[cache-control]
或者是req.headers.cache-control,都无法出来正常的结果,不明白。
关于cache-control的取值
http://www.phpernote.com/seo/465.html