专栏首页MySQL从删库到跑路计算机世界的“协议”指的是什么

计算机世界的“协议”指的是什么

经常听一些技术牛人演讲,张嘴闭嘴就是某某协议。各种协议成百上千种,小白听了一脸懵,又不敢多问。协议像只能意会不能言传的东西。介绍具体协议的资料通篇生硬的描述,只有本来就懂的人才能看懂。

本文不解读具体协议,仅用通俗的话谈谈对计算机世界“协议”的理解。一句话,协议就是法律,这个法律规定了不同的系统之间交换信息时如何解读信息。

如果一个人看一篇没有标点符号的文章,他可以根据常识,对文章进行断句,能大概分辨标题、作者、正文,以及文章表达了什么。但计算机系统不是人,不能对接受的一串信息进行智能的断句。所以要硬性的规定,第几个字到第几个字是标题,第几个字到第几个字是作者,......第几个字到第几个字是故事正文。有了这个规定,即使盲人也能将标题、作者、正文准确的提取出来了,一个一个数就可以了呀。当然这是最简单的规定,复杂的也可以用空格,回车,空行,关键字,特殊符号,标签等来区分信息要素。这些规定就是计算机世界的法律,被称作协议。这些协议保证了计算机各个系统可以正确的交换信息。生活中的法律有多种,适用不同的情况。同理计算机世界协议几百上千种。浏览网页有http协议,传输文件有ftp协议,发邮件有smtp协议。程序员按规定的接口(函数长什么样子)实现代码,这也是在遵守一种协议,否则不同人开发的代码没法成功互相调用。

有的大公司自己有内部协议,也可能被叫做报文格式。如果你参与开发这类公司的系统,还要遵守这些内部协议,否则内部系统之间就没法交流了。

上图是http协议的格式规定,所有用来浏览网页的客户端和服务端,无论用什么语言开发,什么架构,都要按照上图的样子发送数据和解析接收到的数据。如果你违背了这个协议,比如你发送数据没按上面的格式拼,所有网页都打不开。服务器接收数据没按照上面的格式解析,那就完全不知道对方在请求什么了。

下面wireshark抓包工具,抓取访问中国日报cn.chinadaily.com.cn的http数据为例,说明浏览器是严格按照http协议要求发送请求的。

下面的红框表示数据流是http协议的。在上面红框处,右键->追踪流->http,查看http数据如下

对照抓包数据和http请求的协议规定的格式,方法是GET ,URL是/image/2016/p-19.jpg,协议版本是HTTP/1.1,后面都是头部字段名:值回车换行的格式了。这些格式都是浏览器按照规范拼装的,所有浏览器无论具体实现差异多大,发送出的数据都是这个模子的。

大家可能听说过RFC文档,编号都不知道到多少了。这些文档规定了很多互联网数据格式。例如RFC2821,RFC2822对电子邮件数据格式做了规定。其中一条是,邮件头和邮件体之间必须要有一个空行,假设你用Python写发送邮件的功能,拼装的邮件数据缺少这一空行,很可能这封邮件是发送不出去的。说很可能是因为有的邮件服务器没有严格遵守协议,或者就是个bug,用这个邮件服务器对应的邮箱是能成功发送邮件的。但是为了保证用任何邮件服务器都能成功,大家开发相关功能时最好严格遵守相关协议。

通信领域的各种协议也是一样的道理,不管各家公司具体怎么实现,只要最后的数据拼的符合协议,信号符合规定,就完成了功能。

总之,协议就是法律,做哪个领域的工作,就遵守那个领域的法律。遇到大牛说协议不用慌,找到对应文档一句一句读,读完你比他都熟悉这个协议了。

本文分享自微信公众号 - MySQL从删库到跑路(gh_574fe5c6adf5),作者:小当家

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • apache占用过多内存问题

    很多web服务会选用Apache作为服务器软件。但对于物理内存不是很大的服务器来说,会有一个问题,就是Apache长时间运行,httpd进程会越来越大,占用过高...

    震八方紫面昆仑侠
  • C++primer学习笔记(四)

    震八方紫面昆仑侠
  • windows10破解SecureCRT

    步骤一,百度网盘下载文件VanDyke.SecureCRT.and.SecureFX.8.3.0.Build.1514.rar。https://pan.baid...

    震八方紫面昆仑侠
  • 超全etcd管理指南,不看也得收藏

    生产环境中给etcd配置证书相当重要,如果没有证书,那么k8s集群很容易被黑客利用而去挖矿什么的。做法非常简单,比如你下了一个不安全的镜像,通过程序扫描到etc...

    sealyun
  • 美图互联网技术沙龙:大数据架构与数据技术应用实践

    移动互联时代大浪淘沙,「数据」亦主沉浮。各家公司在追逐产品不断完善的同时,也都在累积各自的用户数据反哺产品。而随着数据的不断累积庞大也容易带来一些难以用老旧方法...

    美图数据技术团队
  • 数据科学家的自我修养

    编者按:谨以此文向著名统计学家、中国人民大学统计学院教授吴喜之教授致敬! 正文: 继云计算之后,大数据已然成为IT行业的热点。《哈佛商业评论》更是宣称“数据科学...

    小莹莹
  • 记录一个未知的问题

    Visual Studio一启用应用程序就提示“操作无法完成,因为该文件已在xx.exe中打开”,但是我启动的就是xx.exe啊

    meteoric
  • 腾讯云DNSPod域名API申请Let’s Encrypt泛域名免费SSL证书教程

    Let’s Encrypt是目前使用最为广泛的免费SSL证书,蜗牛789使用的就是此款免费SSL证书,早在2017年7月份起Let’s Encrypt官方就发布...

    墨渊
  • 腾讯云DNSPod域名API申请Let’s Encrypt泛域名免费SSL证书教程

    Let’s Encrypt是目前使用最为广泛的免费SSL证书,蜗牛789使用的就是此款免费SSL证书,早在2017年7月份起Let’s Encrypt官方就发布...

    墨渊
  • SMBus与I2C的差别

    233333

扫码关注云+社区

领取腾讯云代金券