大家好,我是大江小浪,也可以叫我小浪。因为我的第一份工作是从新浪开始的,目前在一家银行科技部门工作。我不是计算机科班出身,却非常喜欢互联网相关的技术,从前端HTML、CSS、Javascript,到后端PHP、Python、Java都有过涉猎。工作这么多年没有特别大的成就,但欣慰的是一直坚持记录自己学到的知识,写下自己对于行业发展的一些看法,并且仍在不断坚持着学习。我觉得每个人都是社会大潮中的一朵浪花,我们应当顺应潮流,坚持自己并争取泛起更大的浪花。
以上是我名字的由来,下面我给大家介绍下今天想要分享的题目《我为什么劝你读点RFC文档》。
RFC是什么
可能有的同学,特别是刚进入职场,特别是像我这样从其他专业转入互联网技术开发领域的同学,可能不知道什么是RFC。我们来看下面这两张图,左边的是一个 Kubernetes 的基础概念的介绍页面,右边一个是 RFC 2616 的页面。看完之后什么感受?是不是觉得Kubenetes的图符合我们现在阅读文档的习惯,右边的图有点上古时代的感受,不知道如何下手。今天我要重点向大家推荐的就是右侧的RFC文档。
RFC的全拼是 Request For Comments ,翻译成中文是 请求意见稿。是由 互联网工程任务组(IETF)发布的一系列备忘录。文件收集了有关互联网相关信息,以及UNIX和互联网社群的软件文件,以编号排定。目前RFC文件是由互联网协会(ISOC)赞助发型。RFC始于1969年,由当时就读加州大学洛杉矶分校(UCLA)的斯蒂芬·克罗克(Stephen D. Crocker)用来记录有关ARPANET开发的非正式文档,他是第一份RFC文档的撰写者。最终演变为用来记录互联网规范、协议、过程等的标准文件。基本的互联网通信协议都有在RFC文件内详细说明。RFC文件还额外加入许多的论题在标准内,例如对于互联网新开发的协议及发展中所有的记录。
介绍了RFC的基础知识,有人说RFC文档格式不友好,阅读起来有些困难,我们为什么要读呢?下面我给大家举个例子。
为什么要阅读RFC文档
如果我们大家开发一个提供文件下载的应用,在遇到文件为中文名时,如何保证不同种类的浏览器,如 Safari、Chrome、Firefox、IE下载保存文件的时候,都能够正常的保存为中文名?如果我们在开发一个爬取网站文件的爬虫,如何保证抓下来的文件存储是,能够正常的存储为中文名?相信做过这方面开发的同学一定遇到过这些编码的问题。
其实这个问题的核心就在响应头中设置文件名的这段代码。这个时候如果我们不知道从规范着手,一直面向百度编程,面向StackOverlfow编程的话,可能需要很长时间的检索,只有网上有相同的人遇到问题并提供解决方案才能解决这个问题。
而熟悉RFC文档阅读的工程师思路可能不一样,很多人可能知道RFC 2616文档,是介绍HTTP/1.1协议的文档,我们可以先从RFC2616开始,但是RFC2616的 Content-Disposition 章节没有介绍详细的内容,在规范刚开始的部分提升了 RFC6266 有相关的更新。
我们再到RFC6266中看相关章节,在 Filename 这部分,我们看到规范中明确说明了,使用 filename* 这种形式能够支持编码转换,到这里基本的解题思路就明确了。以我的开发经验来看,从RFC规范按图索骥,要比盲目的通过百度搜索答案效率要高的多。
读RFC的好处
从上面的例子我们可以看到,读RFC有助于帮助我们解决问题,其实经常读RFC还有很多别的好处。
首先RFC是一群行业专家大牛共同整理的一些落地实施规范,属于第一手的材料,就以RFC2616 HTTP/1.1举例来说,中间件厂家、浏览器厂家在开发产品过程中,都会遵循规范中的约定。如果我们熟读规范,那么对于一些技术细节的实现要求就都掌握了,这比我们看一些别人写的介绍类书籍有价值的多。
RFC文档格式都非常严谨,任何一处瑕疵都能够被参与编写的人找到并修正,而且RFC文档中所描述的内容基本上是不限于具体语言,但是能够实际落地的内容,因此对于我们掌握相关领域的运行逻辑非常有帮助。
我刚开始举的例子,就是我在使用Python下载一些中文文件时遇到的实际场景,如果不熟悉RFC的规范要求,我的排障过程可能要被延长很多倍。
读RFC的建议
如果你是第一次读规范,差不多立刻就会打退堂鼓。说心里话,目前RFC一共有9000多份,内容涵盖的领域非常广,而且RFC的内容不像小说那样吸引人,我们不可能全部读完所有的RFC文档,因此我们在读RFC的时候,需要利用一些小技巧,下面我就给大家分享下我常用的方法。
结合刚才介绍的RFC的资料,我们在读RFC之前一定要清楚读的这个RFC是哪个领域的,读完之后能解决我在工作中的哪些问题,对于自己以前有疑问的一些处理逻辑都整理下来,带着问题去读RFC,有目的性,能够达到事半功倍的效果。
工欲善其事,必先利其器。现在通过 https://tools.ietf.org 为我们提供了非常多的有用的工具,包括如何准备文档操作,如何搜索、显示和打印操作,如何与草案作者沟通,如何参加IETF的会议,如何保持收到最新的更新通知等等。还有类似于 http://www.rfcreader.com 的网站,能够提供更加友好的阅读界面,介绍我们阅读过程中的疲劳。
合理利用文档索引和搜索功能,找到自己需要阅读的文档。
熟悉规范的目录结构和编写风格,阅读过程中适当的略读,跳过自己不需要关注的部分,提高阅读的速度。
推案的RFC文档
最后为各位互联网领域的技术人员推荐几个必读的RFC文档:
感谢大家的聆听,希望能够对各位有所帮助,最后祝各位能够在技术的大江中掀起自己的浪花。临近春节,提前祝各位浏览此文的朋友们春节快乐!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。