node 基础(笔记)

前言:本章的知识比较杂,涵盖了很多网络知识,全部放到node里面了,主要查看目录

1. node是什么

  • node.js 是一个基于 Chrome V8 引擎的js运行环境
  • node.js 使用了一个事件驱动、非阻塞式 I/O( 输入,输出 ) 的模型,使其轻量又高效
  • 它不是一门新的编程语言,它是 js 服务端的运行环境

2. node中的js组成部分

  • ECMAScript
  • 全局成员
  • 模块成员
    • 核心模块、第三方模块、用户自定义模块

3. C/S 架构与 B/S架构

  • B/S 架构:Browser(浏览器) → Server(服务器),通过浏览器访问一个网站,服务器提供数据存储等服务
  • C/S 架构:Client(客户端) → Server(服务器),安装软件到电脑使用,服务器提供数据存储等服务

4. Get请求

请求在网站的访问过程中很常见,并且请求分为多种方式:GET/getPOST/postPUT/putDELETE/deleteOPTIONS/options等。其中GET和POST最常用。

4.1 什么是GET请求?

GET从字面上理解为获取,通常用于获取服务端的数据,获取页面默认为get请求

4.2 常见的发起GET请求的方式
  • 地址栏访问
  • src/href
  • 表单
4.3 网页中的GET请求
  • 各种搜索框
  • 各种详情页面
  • 大部分超链接
4.4 GET方式提交数据的格式
  1. 格式:index.html?userName=jack&password=123
  2. 参数名与参数值之间没有空格
  3. 参数值不需要使用单双引号包括
4.5 GET方式提交数据的特点
  1. get方式在url后面拼接参数,只能以文本的形式传递数据
  2. 传递的数据量小,4KB左右(不同浏览器会有差异)
  3. 安全性低,会将数据显示在地址栏
  4. 速度快,通常用于对安全性要求不高的请求

5. Post请求

5.1 什么是post请求

字面上理解,post就是指发送,提交,它可以向指定的资源提交要被处理的数据

5.2 为什么需要POST请求

GET方式提交数据通过URL传递到请求的页面,提交的数据量一般较小,用于请求页面数据。此外,GET方式传递的数据安全性低, 对于密码等隐私信息、文件上传必须使用POST方式提交。

要求:如果使用表单方式进行提交,表单的method必须设置为POST。

5.3 Post请求特点
  • post方式安全性比较高,放在body里面传输
  • 传递数据量大,请求对数据长度没有要求
  • 请求不会被缓存,也不会保留在浏览器历史中(body的方式)
  • post方式提交数据上限默认为8M(可以在服务端去修改)

6. Get和Post的区别

  • post更安全一些

7. 报文

7.1 请求报文
7.1.1 请求行

GET /demo.html HTTP/1.1

请求方式 + 空格 + 请求路径 + 空格 + HTTP 协议版本

7.1.2 请求头

客户端想要告诉服务端的一些额外信息,以下为常见的请求头:

Host请求的主机
Cache-Control控制缓存(例如:max-age=60 缓存 60 秒)
Accept客户端想要接收的文档类型,逗号分隔
User-Agent标识什么客户端帮你发送的这次请求
Referer这次请求的来源
Accept-Encoding可以接受的压缩编码
Cookie客户端本地的小票信息
7.1.3 请求体

这次请求客户端想要发送给服务端的数据正文,一般在 GET 请求时很少用到,因为 GET 请求主观上都是去“拿东西”。

7.2 响应报文
7.2.1 状态行

HTTP/1.1 200 OK

HTTP 协议版本 + 空格 + 状态码 + 空格 + 状态描述

7.2.2 响应头

服务端想要告诉客户端的一些额外信息,常见的有以下:

Date响应时间
Server服务器信息
Content-Type响应体的内容类型
Content-Length响应的内容大小
Set-Cookie让客户端设置一个小票

如果需要在程序中设置自定义的响应头(不是预设的),建议使用 X-<Property-Name> 规则

7.2.3 响应体

这次请求服务端想要返回给客户端的数据正文,一般返回的都是 HTML,也可以返回 JavaScript 或者 CSS( 需要修改响应头中的响应类型 )

8. 响应状态码

状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值

  • 1xx:指示信息 —— 表示请求已接收,继续处理
  • 2xx:成功 —— 表示请求已被成功接收、理解、接受 ( 成功 )
  • 3xx:重定向 —— 要完成请求必须进行更进一步的操作
  • 4xx:客户端错误 —— 请求有语法错误或请求无法实现( 前后端都有可能出错,需要沟通 )
  • 5xx:服务器端错误 —— 服务器未能实现合法的请求( 甩锅找后端 )

常见状态代码、状态描述的说明如下

  • 200 OK:客户端请求成功
  • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解
  • 401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务
  • 404 Not Found:请求资源不存在,举个例子:输入了错误的URL( 最常见的 )
  • 500 Internal Server Error:服务器发生不可预期的错误
  • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

9. 进程与线程

  • 进程:是操作系统进行资源分配和调度的基本单元,可以申请和拥有计算机资源,进程是程序的基本执行实体
  • 线程:是操作系统能够进行运算调度的最小单位,一个进程中可以并发多个线程,每条线程并行执行不同的任务
  • 关系:一个进程可以有多个线程,一个线程只能有一个进程,进程是爹、线程是儿

10. 串行、并行、并发

  • 串行指的是js的同步与异步,同步代码在后也会把异步代码先执行
  • 并行指的是多个任务同时进行
  • 并发指的是先开启一个任务,之后会新加任务,这两个任务不会互相影响
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值