嘘~ 加载慢,正在从阿水的辣鸡服务器里偷取页面 . . .

Node.js-Web模块


Node开发学习笔记

第六章 Node.js Web模块

什么是Web服务器?

Web服务器一般指网站服务器,是指驻留与因特网上某种类型计算机的程序,Web服务器的基本功能,就是提供Web信息浏览服务。它只需要支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。

大多数web服务器都支持服务端的脚本语言php、python、ruby等,并通过脚本语言从数据库获取数据,将结果返回给客户浏览器。

目前最主流的web服务器是Apache、Nginx、IIS。

Web应用架构

  • Client:客户端,一般指浏览器,浏览器可以通过HTTP协议向服务器请求数据。
  • Server:服务端,一般指Web服务器,可以接收客户端请求,并向客户端发送响应数据。
  • Business:业务层,通过Web服务器处理应用程序,如数据库交互、逻辑运算、调用外部程序等。
  • Data:数据层,一般由数据库组成。

使用Node创建Web服务器

Node.js提供了http模块,http模块主要用于搭建HTTP服务端和客户端,使用HTTP服务器或客户端功能必须调用http模块。

var http = require('http')
//创建一个服务,如果有url访问到了这个服务,回调函数执行。
//回调函数形参request代表请求对象,里面存储请求的信息。
//形参response代表响应对象
http.createServer((request,response)=>{})
//把服务监听3000端口号
serve.listen('3000',(err)=>{})

request对象中有以下属性:

  • url:请求的url地址

response响应对象中有如下方法:

  • write():向响应对象添加信息
  • end():代表本次响应结束
  • writeHead(status,{‘Content-Type’:‘text/html;charset=utf-8’}):设置响应头,有两个参数,第一个参数是状态码,第二个参数是对象,包含响应类型和编码格式。

HTTP

HTTP协议(超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的www文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据。(HTTP协议属于应用层,TCP/IP协议属于传输层和网络层,关于网络通信详见TCP/IP协议百度百科。)

特点

  • 支持客户端/服务器模型

  • 简单快速

    向服务器请求服务时,只需要传送请求方法和路径。请求方法常用的有GET、POST、HEAD。每种方法规定了客户于服务器的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度快。

  • 灵活

    HTTP允许传输任意类型对的数据对象,正在传输的类型由Content-Type加以标记,Content-Type类型可以百度MIME类型。

  • 无连接

    无连接的含义是限制每次连接只处理一个请求,服务器处理完客户端的请求,然后响应,并且收到应答之后就断开连接,这种方式可以节省传输时间。

  • 无状态

    HTTP协议是无状态协议,无状态协议是指协议对于事物处理没有记忆能力,这种方式的坏处就是如果后续的处理需要用到之前的信息,则必须要重传,这样就导致了每次连接传输的数据量增大。好处就是如果后续的连接不需要之前提供的信息,响应就会比较快,而为了解决HTTP的无状态特性,出现了Cookie和Session技术。

URL

HTTP协议是一个基于请求和应答模式的,存在于传输层的之上的应用协议,是一个无状态的协议,通常是基于TCP的连接方式。HTTP的URL是一中特殊类型的URL,包含了用于定位查找某个网络资源的路径,格式为包括如下:

  • 协议
  • 域名/IP
  • 端口号
  • 相对路径

HTTP请求

HTTP请求信息由如下三部分组成:

  • 请求方法URL协议/版本
  • 请求头(Request Header)
  • 请求正文

HTTP响应

在接收和解释请求信息后,服务器返回一个HTTP响应信息。

HTTP响应由三部分组成:

  • 状态行,常见状态代码、状态描述、说明有:
    • 200:OK //客户端请求成功
    • 400:Bad Request //客户端请求有语法错误,不能被服务器所理解
    • 401:Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
    • 403:Forbidden //服务器收到请求,但是拒绝提供服务。
    • 404:Not Found //请求资源不存在,如URL错误
    • 500:Internal Server Error //服务器发生不可预期的错误
    • 503:Server Unavailiable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
  • 消息报头:响应报头后述
  • 响应正文:服务器返回的资源内容

HTTP工作过程

  • 客户端连接到web服务器

    一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认80)建立一个TCP套接字连接。

  • 客户端发送HTTP请求

    通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头、空行、请求体四个部分构成。

  • 服务器就收解释请求并返回HTTP响应

    Web解析请求,定位请求资源,服务器将资源复写到TCP套接字,由客户端获取,一个响应由状态行、响应头、空行、响应数据4个部分。

  • 客户端释放TCP连接

    若Connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭TCP连接,释放TCP连接。若Connection为keepalive,则该连接会保存一段时间,该时间内可以持续使用该连接接收请求,做出响应。

常用模块

path模块

专注于文件路径

URL模块

专注于处理url地址

querystring

专注于url中使用get请求后面参数解析


文章作者: 百念成诗
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 百念成诗 !
评论
  目录