const body = 'hello world';
response.writeHead(200, {
'Content-Length': Buffer.byteLength(body),
'Content-Type': 'text/plain' });
此方法只能在消息上调用一次,并且必须在调用 response.end() 之前调用。
如果在调用此方法之前调用了 response.write() 或 response.end(),则将计算隐式或可变的响应头并调用此函数。
当使用 response.setHeader() 设置响应头时,则与传给 response.writeHead() 的任何响应头合并,且 response.writeHead() 的优先。
如果调用此方法并且尚未调用 response.setHeader(),则直接将提供的响应头值写入网络通道而不在内部进行缓存,响应头上的 response.getHeader() 将不会产生预期的结果。 如果需要渐进的响应头填充以及将来可能的检索和修改,则改用 response.setHeader()。
const server = http.createServer((req, res) => {
res.setHeader('Content-Type', 'text/html');
res.setHeader('X-Foo', 'bar');
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('ok');
});
注意,Content-Length 以字节而非字符为单位。 上面的示例可行是因为字符串 ‘hello world’ 仅包含单字节字符。 如果主体包含更高编码的字符,则应使用 Buffer.byteLength() 来判断给定编码中的字节数。 Node.js 不检查 Content-Length 和已传输的主体的长度是否相等。
尝试设置包含无效字符的响应头字段名称或值将导致抛出 TypeError。
来源官方文档介绍:传送门
传送门
MIME类型 | 文本类型 |
---|
application/javascript | javascript |
application/json | json |
text/html | html |
text/css | css |
image/gif | GIF 图片 (无损耗压缩方面被PNG所替代) |
image/jpeg | JPEG 图片 |
image/png | PNG 图片 |
image/svg+xml | SVG图片 (矢量图) |
来源MDN:传送门
想了解HTTP状态码,点击链接
const request = require('request')
引入这个包就可以开始使用了,最简单的使用方式就是 request(url) 就可以想指定的地址发起一个 get 请求。 从这里我们可以看出 request 暴露出来的就是一个函数。其实它内部的结构如下
function request (uri, options, callback) {
if (typeof uri === 'undefined') {
throw new Error(
npm install --save node-friendly-response
要求它作为节点模块...
var express = require ( 'express' ) ;
var Response = require ( 'node-friendly-response' ) ;
var app = express ( ) ;
app . get ( '/' , function ( req , res ) {
res . ok ( { message : 'Hello World!' } )
} ) ;
与Bluebird一起使用
var express = require ( 'express' ) ;
var Bluebird = require ( 'bluebird' ) ;
var Respo
response.setStatus(302)//临时定向响应码
response.setHeader("Location", "/day03_00_ResponseHeader/servlet/ResponseHeaderDemo2");///day03_00_ResponseHeader/servlet/Re
const fs = require('fs');
const path = require('path');
const mime = require('./mime.json')
http.createServer((req,res)=>{
fs.readFile(path.join(__dirname,'view',req.url),(err,data)=>{
if(err){
“.3gp”:“video/3gpp” ,
“.aab”:“application/x-authoware-bin” ,
“.aam”:“application/x-authoware-map” ,
“.aas”:“application/x-authoware-seg” ,
“.acx”:“application/internet-property-stream” ,
“.ai”:“application/postscript” ,
“.aif”:“audio
-------------------- 1.request常见的属性 -----------------------var http=require("http");var server=http.createServer(); //创建服务器server.on("request",function(req,res){// request.headers 打印全部请求头信息--对象形式// ...
本地localhost跨域连接nodejs服务器数据时Chrome报错:
XMLHttpRequest cannot load http://24px.cc/……. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost’ is therefore
最近在尝试修复工作项目中 Express 服务的 WebInspect 扫描报告指出的漏洞,其中有涉及到需要修改服务响应头的部分。以前没怎么研究过 Express,正好借此机会实践一下。