Jupyter协议是一个基于HTTP的应用层协议,它定义了Jupyter中各组件(如Notebook、Kernel、Hub等)之间的交互方式。
Jupyter协议的主要组成部分为:
- 消息传递协议:定义了内核和客户端(Notebook)之间传递消息的格式。
主要有:
- Execute :执行单个代码 cell。
- Execute Reply:执行结束后的结果反馈。
- Input :内核输入。
- Output: 内核输出。
- Stream:标准输出和标准错误等实时流。
- 协议版本:定义了Jupyter支持的协议版本,目前主要有v4和v5两代。 v5支持多窗口和分列等新特性。
- 触发器:定义了何时触发消息传递,如当 cell 被执行时就触发 Execute 消息。
- 魔术命令:以 % 开始的特殊命令,如 %load、%time 等。
- 内容表示:定义Notebook内部的数据结构表示,如代码cell、文本cell等。
- 安全性:定义了Jupyter使用的鉴权和加密方法。
- 向后兼容:为了保持兼容性,新发布的协议版本依然支持旧版本。
总的来说,Jupyter协议通过定义内核和客户端之间标准化的接口规范,实现了Jupyter生态系统中各组件的通信,例如Notebook和Internal等。
并且为保持向后兼容性与灵活性,Jupyter支持多种协议版本。
JupyterLab和Jupyter Notebook主要有以下区别:
- 功能
- Jupyter Notebook 主要提供notebook功能,操作比较单一,只能运行notebook。
- JupyterLab 不仅可以运行notebook,还提供了