[Node]Day3—Node.js 服务器端基础知识、创建服务器、HTTP协议、请求及响应处理、Node异步编程

服务器端知识、创建服务器、HTTP协议、请求及响应处理、Node异步编程

  • 一、服务器端基础知识
    • 4.1 服务器端基础知识
      • 4.1.1 URL
      • 4.1.2 开发过程中客户端和服务器端说明
      • 4.1.3 网站的组成
      • 4.1.4 Node网站服务器
      • 4.1.5 IP地址
      • 4.1.6 域名
      • 4.1.7 端口
  • 二、 创建Web服务器
    • 4.2 HTTP协议
      • 4.2.1 HTTP报文
        • 请求报文
        • 响应报文
      • 4.2.2 HTTP请求与响应
        • 请求参数
        • 响应报文
        • 路由
        • 静态资源
        • 动态资源
  • 三、Node.js 异步编程
    • 4.3 同步API、异步API
      • 4.3.1 同步API
      • 4.3.2 异步API
    • 4.4 回调函数
    • 4.5 Node.js 代码执行顺序分析
    • 4.6 Promise
    • 4.7 异步函数(async/await)
      • 4.7.1 async关键字
        • 使用 async 创建函数,返回一个Promise
      • 4.7.2 await关键字
        • 使用 async / await ,用同步代码实现异步操作
    • 4.4 Node.js 全局对象global

一、服务器端基础知识

4.1 服务器端基础知识

4.1.1 URL

同一资源定位符,又叫URL(Uniform Resource Locator), 是专为标识Internet 网上资源位置而设的一种编址方式,网页地址即是URL

URL的组成

传输协议://服务器IP

域名:端口/资源所位置标识

http://www.baidu.com/news/5642454522.html

http:超文本传输协议,提供了一种发布和接收HTML页面

4.1.2 开发过程中客户端和服务器端说明

在开发阶段,客户端(浏览器)和服务器端(Node)使用同一台电脑,即开发人员电脑。

本机域名:localhost

本地IP:127.0.0.1

4.1.3 网站的组成

网站应用程序:客户端和服务器端

客户端:在浏览器中运行的部分,用HTML\CSS\JavaScript构建的与用户进行交互的界面程序。

服务器端:在服务器中运行的部分,负责存储数据和处理应用逻辑。

[Node]Day3—Node.js 服务器端基础知识、创建服务器、HTTP协议、请求及响应处理、Node异步编程_第1张图片

4.1.4 Node网站服务器

能够提供网站访问服务的机器就是网站服务器,可以接收客户端的请求,并做出响应。

4.1.5 IP地址

IP(Internet Protocol Address):互联网协议地址,是互联网中设备的唯一标识

4.1.6 域名

由于IP地址难以记忆,所以产生域名的概念,所谓域名就是平时上网所使用的网址
在地址栏中输入网址后,DNS域名服务器会将域名转换为IP才能访问到指定的网站服务器。

4.1.7 端口

端口:计算机与外界通讯交流的出口,用来区分服务器电脑中提供的不同服务。

[Node]Day3—Node.js 服务器端基础知识、创建服务器、HTTP协议、请求及响应处理、Node异步编程_第2张图片

二、 创建Web服务器

// 引用系统模块

const http = require('http')
 
//处理url地址
const url=require('url'); 

// 创建Web服务器,app对象为网站服务器对象
const app = http.createServer()

// 当客户端发送请求时
app.on('request',(req,res)=>{
    

	console.log(req.headers)//获取请求报文信息  报文具体字段req.headers['accept']
    console.log(req.method)//获取请求方式
   	console.log(req.url)//获取请求地址

	res.writeHead(200, {
   'Content-Type': 'text/plain; charset=utf-8'}); //规定响应头
 	
   	res.write('hi,user') //写入响应结果中

   	if (req.method=='POST') {
   //请求的方式
   	
   	 	res.end('post请求') //写入响应结果结束
   	 	
   	} else {
   
   	 	res.end('get请求')
   	}
   
})

// 监听3000端口
app.listen(3000)

console.log('服务器已启动,监听3000端口,请访问localhost:3000 或者http://127.0.0.1:3000/');

[Node]Day3—Node.js 服务器端基础知识、创建服务器、HTTP协议、请求及响应处理、Node异步编程_第3张图片
新建一个Form.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- method :指定当前表单提交的方式
         action :指定当前表单提交的地址
    -->
    <form action="http://localhost:3000" method="post">
        <button type="submit">提交</button>
    </form>
</body>
</html>

[Node]Day3—Node.js 服务器端基础知识、创建服务器、HTTP协议、请求及响应处理、Node异步编程_第4张图片
点击提交,可以看到打印出来POST请求
[Node]Day3—Node.js 服务器端基础知识、创建服务器、HTTP协议、请求及响应处理、Node异步编程_第5张图片


4.2 HTTP协议

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)
规定了如何从网站服务器传输超文本到本地浏览器,它基于客户端服务器架构工作,是客户端和服务器端(网站)请求和应答的标准
[Node]Day3—Node.js 服务器端基础知识、创建服务器、HTTP协议、请求及响应处理、Node异步编程_第6张图片

4.2.1 HTTP报文

报文包括 请求报文 和 响应报文

请求报文
+ GET 请求数据
+ POST  发送数据
响应报文
  • HTTP状态码
    • 200 请求成功
    • 300 重定向,需要进一步的操作以完成请求
    • 304 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
    • 400 客户端请求有语法错误
    • 404 请求的资源没有被找到
    • 405 Method Not Allowed,一般是请求方式错误
    • 500 服务器端错误
 res.writeHead(500)

在这里插入图片描述

  • 文本内容
    • 纯文本 'content-type':'text/plain'
    • Html文本 content-type':'text/html'

你可能感兴趣的:(Node)