返回
掌握数据流转全景,让编程不再受制于黑盒
Android
2024-01-12 14:18:17
**数据流转 —— Web 开发与数据传输的基石**
Web 开发离不开数据传输,而数据流转正是 Web 开发与数据传输中最为基础与核心的概念。它贯穿于整个 Web 开发流程,从前端的界面展示到后端的服务响应,无处不在。掌握数据流转的本质,就掌握了 Web 开发与数据传输的主动权。
**揭开数据流转的面纱**
数据流转,顾名思义,就是数据从一个源点到一个终点的传输与传递的过程。在 Web 开发中,数据流转的起点可以是一个前端的界面按钮,而其终点可以是一个后端的数据库。
而真正承载数据流转的,是浏览器和服务器之间的**“无形之手”** —— **“超文本传输协议”** (简称**“Http”** 协议或**“HTTPS”** 协议(HTTPS 协议在传输过程中会加密数据)
**“超文本传输协议” 的前世今生**
“超文本传输协议” 协议是万维网(WWW) 的基石,也是互联网上信息传输的基础语言。它由万维网之父蒂姆·伯纳斯·李(Tim Berners- Lee)于 1989 年发明,并于 1991 年 8 月 6 日正式向全球开放,开启了互联网的新纪元。
**走进“超文本传输协议” 的工作原理**
当我们在浏览器中键入一个网址并按 “Enter” 键后,浏览器会将该网址解析成一个IP 地址,并向该 IP 地址对应的服务器发送一个**“超文本传输协议”** 请求。
“超文本传输协议” 请求报文是一个**“文本信息包”** ,它包含了诸如**“资源路径”** 、**“传输方法”** 、**“协议版本”** 这样的元信息,用于告知服务器:**“我需要什么?”** 、**“我如何获取?”** 、**“我期待什么?”**
服务器在接收到“超文本传输协议” 请求报文后,会解析其内容并进行相应的资源检索和指令逻辑运算。检索完毕后,服务器会将运算逻辑中的数据(如:一个HTML 网页、一幅 JPG 图像、一个 JSON API 响应)封装成一个**“超文本传输协议”** 响应报文,并连同其携带的数据一并发送给浏览器。
浏览器在收到**“超文本传输协议”** 响应报文后,会解析其内容并决定如何将其呈递给终端使用者。譬如将一个网页呈递给屏幕、将一幅 JPG 图像呈递给屏幕、将一则 JSON API 响应报文呈递给前台的 Ajax 请求。
**多样化数据流转场景下的协议选择**
从传统 Web 开发到如今流行的 Websocket 与 RESTful API,随着互联网技术的飞速演进,我们对数据流转的诉求也愈发多元化。
**Websocket:实时双向通信的秘密武器**
**Websocket** 是一种双向通信协议,它允许浏览器和服务器在建立起一个单一的、持续的、全双工的通信信道后,可以实时地、双向地发送和接受文本、二进制数据等信息,而无需像传统的 **“超文本传输协议”** 请求 —— **“超文本传输协议”** 响应模型那般,不停地轮询与刷新。
**RESTful API:数据为中心的资源访问之道**
**RESTful API** (简称 **REST API** )是基于**“资源”** 的一种设计风格。它将应用程序的所有可用信息划为一个一个独立的资源,再为每个资源定义一组与之关联的操作(通常被称为动作)和一个用于访问该资源的 URL。
这样一来,开发者就可以使用一种标准化的和一致的方式来访问和使用这些资源,而无需关心应用程序的内部工作原理。这简化了应用程序的开发和集成,并提高了可扩展性和可移植性。
**写给开发者的指南**
**掌握数据的流转,助力开发进阶**
1. 深入钻研**“超文本传输协议”** 的工作原理
2. 熟练掌握**“超文本传输协议”** 请求报文和响应报文的格式
3. 灵活运用**Websocket** 实现实时双向通信
4. 巧妙运用**RESTful API** 实现资源化的数据访问
5. 善于使用 Postman、Insomnia 等工具辅助 Web 开发
6. 探索诸如 Redis、MongoDB 等数据库、诸如 RabbitMQ、Kafka 等队列服务、Nginx、Redis 等代理缓存等进阶数据存储与传输手段
**扫除数据流转中的障碍,**
1. 浏览器乱码:编码格式未指定
2. 跨域访问受阻:浏览器同源策略限制
3. 服务器宕机:资源未找到或服务器内部报错
4. 丢失连接:防火墙或代理规则阻断
5. 数据延迟:高峰时间或带宽受限