美文网首页
HTTP服务器的基础知识

HTTP服务器的基础知识

作者: zhangwinwin | 来源:发表于2018-11-29 16:40 被阅读0次

一个用“Hello, World”做响应的HTTP服务器

var http  = require('http')
var server = http.creareServer(function (req,res){
    res.write('hello,world')
    res.end()
})

res.write()和res.end()可以合成一条语句:res.end("Hello, world")
然后绑定一个端口,让服务器可以监听接入的请求。用到server.listen()方法,它能接受一个参数组合

server.listen(3000)

让node监听了端口3000,可以在浏览器中访问http://localhost:3000。就能看到Hello,world的普通文本页面。

读取请求头及设定响应头

Node提供了几个修改HTTP响应头的方法:
1、res.setHeader(field, value)
2、res.getHeader(field, value)
3、res.removeHeader(field, value)

设定HTTP响应码:res.statusCode()

资源

当Node的HTTP解析器读入并解析请求数据时,它会将数据做成data事件的形式,把解析好的数据放入其中,等待程序处理

req.on('data', function(chunk){
    console.log('parsed', chunk)
    res.end()
})

默认情况下,data事件会提供Buffer对象,这是node版的字节数组。而对于文本格式的代办事项而言,并不需要二进制数据,所以最好将流编码设定为ascill或utf-8。可以调用req.setEncoding(encoding)方法设定

设定Content-Length头

为了提高速度,如果可能的话,应该在响应中带着Content-Length域一起发送。对于事项清单而言,响应主体很容易在内存中提前构建好,所以能得到字符串的长度并一次性地将整个清单发出去。设定Content-Length域会隐含禁用Node的块编码,因为要传输的数据更少,所以能提高性能。

res.serHeader('Content-Length': Buffer.byteLength(body))

解析客户端请求的URL

Node提供了url模块,特别是.parse()函数。

request('url').parse('http://localhost:3000/1?api-key=foobar')
{    protocol: 'http',
     slashes: true,
     host: 'localhost: 3000',
     port: '3000',
     hostname: 'localhost',
     href: 'http://localhost:3000/1?api-key=foobar',
     search: '?api-key=foobar',
     query: 'api-key=foobar',
     pathname: '/1',
     path: '/1?api-key=foobar'
}

相关文章

  • 2019-07-03

    web服务器基础知识 http协议 浏览器发送给服务器的数据 (这些数据是有格式的,这就是http协议)浏...

  • 02、构建Node Web程序

    一、HTTP 服务器的基础知识 1、Node的处理 服务器每收到一条HTTP请求,都会用新的req和res对象触发...

  • Node.js 实战_2 构建 Node Web 程序

    一、HTTP 服务器的基础知识 Node 的 http 模块:C编写、底层、简单、灵活、高效。Node的策略是提供...

  • 《网络是怎样连接的》读书笔记(1.2)

    1.2 向DNS服务器查询Web服务器的IP地址 1.2.1 IP地址的基础知识 “在生成 HTTP 消息之后,下...

  • Flask学习笔记之HTTP(一)

    先整理一下HTTP基础知识: HTTP 方法:GET 对比 POST HTTP 的工作方式是客户机与服务器之间的请...

  • HTTP基础知识

    HTTP基础知识 Http概述 HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间...

  • HTTP服务器的基础知识

    一个用“Hello, World”做响应的HTTP服务器 res.write()和res.end()可以合成一条语...

  • python爬虫入门

    基础知识 HTTP协议 我们浏览网页的浏览器和手机应用客户端与服务器通信几乎都是基于HTTP协议,而爬虫可以看作是...

  • 爬虫基础

    在编写一个爬虫之前,来学习下爬虫的基础知识: 爬虫:简单的可以理解为模拟浏览器向服务器发送HTTP请求,服务器接收...

  • Nginx

    nginx是一个http服务器和反向代理服务器 1.http服务器 处理http请求,将http请求发送给服务器,...

网友评论

      本文标题:HTTP服务器的基础知识

      本文链接:https://www.haomeiwen.com/subject/mtyfcqtx.html