HTTP和第三方模块

1.HTTP

HTTP协议,叫超文本传输协议(Hypertext transfer protocol)。是一个规则,规定了浏览器和服务器之间通信的规则。

http的传输行为,共分为三个步骤:

  1. 建立连接

  2. 进行传输

  3. 断开连接

无论是哪个步骤,都是由客户端主动开始的,这样比较安全。

2、三次握手

第一次握手:客户端主动给服务器发送消息,请求连接。

第二次握手:服务器收到消息后,给客户端回应一个消息,表示已经收到要连接的请求。

第三次握手:客户端收到服务器的消息后,给服务器再次发送消息,表示收到服务器响应的消息。

3、传输

当连接建立后,客户端就可以跟服务器进行传输了,整个传输过程分为两个阶段:

  • 客户端给服务器发起请求

  • 服务器给客户端做出响应

3.1、请求

http协议中规定,客户端发起请求的请求信息,要遵循请求报文的格式,请求报文规定请求信息分为4个部分:

  • 请求行

  • 请求头

  • 请求空行

  • 请求主体

请求行中包含三个内容:

  • 请求方式

    客户端对服务器发起不同的请求方式,服务器有不同的识别规则和回应。最常见的请求方式:

    • get:参数会暴露在地址栏;数据有大小限制,最大4kb;数据只能进行url编码;get请求会被记录在历史记录;可能会被浏览器缓存。语义用于获取服务器端数据。常见的get请求包括:

      • 在地址栏输入数据敲回车

      • 点击a标签跳转

      • html中引入图片、引入css、引入js、引入html地址

      • form默认的提交方式,也可以设置get提交方式

    • post:参数不会暴露在地址栏;数据大小没有限制;数据可以不经过url编码,可以是其他格式数据;post不会被记录在历史记录;不会被浏览器缓存。语义用于给服务器提交数据。常见的post请求:form标签的post提交方式

    • put:语义用于请求服务器修改数据

    • delete:语义用于请求服务器删除数据

  • 请求路径

    这里所指的请求路径是上图中的path+hash部分。

    注意:请求路径永远是/开头。

  • 请求的协议以及版本

    http请求的协议为http。不同的网络通信,请求协议也是不同的,常见的协议有:

    http/https/ssh/ftp/sftp/mongodb/mysql/

    demo:nodejs服务器获取请求方式和请求路径

3.2、响应

http规定,服务器接收请求后,要对客户端进行相应。http规定响应信息必须遵循响应报文的规则。响应报文规则包含3部分内容:

  • 响应行

  • 响应头

  • 响应主体

响应行包含3部分:

  • 协议和版本

  • 状态码

    状态码是http协议规定用来描述这次请求,服务器给出响应的状态,http请求共有5中响应状态:

    • 1xx:代表请求已被接受,需要继续处理

    • 2xx:代表请求已成功被服务器接收、理解、并接受

    • 3xx:代表需要客户端采取进一步的操作才能完成请求

    • 4xx:代表了客户端看起来可能发生了错误,妨碍了服务器的处理

    • 5xx:代表了服务器在处理请求的过程中有错误或者异常状态发生

  • 状态描述

    每个状态码,都有一个描述对应,更详细的说明这个状态码的含义。

    参考网址:HTTP 响应状态码 - HTTP | MDN

4、四次挥手

当客户端和服务器结束这次请求后,需要断开连接。断开连接也叫作四次挥手。具体过程如下:

第一次挥手,客户端主动对服务器发起断开请求

第二次挥手,服务器回应收到这次请求,并做断开准备

第三次挥手,服务器做好断开准备后,通知客户端,可以断开了,当客户端断开后,服务器将销毁这次请求的信息,不再回应

第四次挥手,客户端告诉服务器已经断开

二、第三方模块下载

nodejs自带的模块无法满足业务需求时,我们需要自定义模块来完成功能,对于某一类型的功能,为了能重复使用,自定义的模块是需要封装的。假设已经有人封装好这样的模块了,我们只需要下载下来导入就能使用。这样由别人封装好的模块,叫第三方模块。
 

npm -v # 查看npm版本
npm install/i 包名
npm i 包名 包名 ... # 下载多个模块
npm i 包名@版本号 # 最新版本可以使用 @latest
npm view 模块 versions   查看模块的所有版本:
npm list # 简写 npm ls  查看所有安装好的依赖包
npm uninstall/un 包名  卸载:
  
npm切换镜像源:
npm config set registry 镜像源地址 # 切换命令
npm config get registry # 查看镜像源地址
npm --registry https://registry.npm.taobao.org install node-red-contrib-composer@latest # 临时切换使用

下载好的模块如果不知道怎么使用,上网查询:https://www.npmjs.com/。所有使用npm能下载好的模块,都在这个网站上能找到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白有点绿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值