codecamp

Node.js HTTP标头

设置标头

你可以使用response.setHeader(name,value)在响应中显式排队任何HTTP标头。

响应中的Content-Type是我们可以设置的标头,以通知客户端如何解释来自服务器的数据。

例如,如果你向客户端发送HTML文件,你应将Content-Type设置为text/html,可以使用以下代码:

response.setHeader("Content-Type", "text/html"); 

Content-Type标头的值的正式名称称为MIME类型。

几个关键内容类型的MIME类型如下表所示。

名称MIME类型
超文本标记语言(HTML)text/html
级联样式表(CSS)text/css
JavaScriptapplication/javascript
JavaScript对象表示法(JSON)application/json
JPEG图像image/jpeg
便携式网络图形(PNG)image/png

有一个名为mime(npm install mime)的NPM包,你可以使用它从文件扩展名获取官方mime类型。

下表显示了如何使用它。

var mime = require("mime"); 
mime.lookup("/path/to/file.txt"); // => "text/plain" 
mime.lookup("file.txt"); // => "text/plain" 
mime.lookup(".TXT"); // => "text/plain" 
mime.lookup("htm"); // => "text/html" 

你可以使用response.getHeader函数获取排队等待发送的标头:

var contentType = response.getHeader("content-type"); 

你可以使用response.removeHeader函数从队列中删除标头:

response.removeHeader("Content-Encoding"); 

仅发送标头

要显式发送标头并将响应移动到仅限身体模式,调用response.writeHead成员函数。

response.writeHead成员函数接收将被添加到使用response.setHeader排队的任何头的状态代码和可选头。

以下代码显示如何将状态代码设置为200,并设置用于提供HTML的Content-Type标头:

response.writeHead(200, { "Content-Type": "text/html" }); 

请求流的关键成员

请求也是可读流。

当客户端想要将数据流式传输到服务器(例如,文件上传)时,这是非常有用的。

客户端HTTP请求分为头部和主体部分。

我们可以获得有关客户端请求HTTP标头的有用信息。

request.headers属性是一个JavaScript对象字面值的标头名称和值。

console.log(request.headers); 

要检查单个标头,请像任何其他JavaScript对象字面值一样索引此对象:

console.log(request.headers["user-agent"]); // "curl/7.30.0" 


Node.js HTTP
Node.js HTTP文件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }