前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【技术创作101训练营】我为什么劝你读点RFC

【技术创作101训练营】我为什么劝你读点RFC

原创
作者头像
大江小浪
修改2021-01-18 11:13:50
5570
修改2021-01-18 11:13:50
举报
文章被收录于专栏:小狼的世界
我为什么劝你读点RFC.pptx

大家好,我是大江小浪,也可以叫我小浪。因为我的第一份工作是从新浪开始的,目前在一家银行科技部门工作。我不是计算机科班出身,却非常喜欢互联网相关的技术,从前端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文档: 

  • RFC2616 :Hypertext Transfer Protocol -- HTTP/1.1
  • RFC6266 :Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)
  • RFC5987 :Character Set and Language Encoding for             Hypertext Transfer Protocol (HTTP) Header Field Parameters
  • RFC2231 :MIME Parameter Value and Encoded Word Extensions:             Character Sets, Languages, and Continuations
  • RFC3339 :Date and Time on the Internet: Timestamps
  • RFC1918 :Address Allocation for Private Internets
  • RFC2822 :Internet Message Format

感谢大家的聆听,希望能够对各位有所帮助,最后祝各位能够在技术的大江中掀起自己的浪花。临近春节,提前祝各位浏览此文的朋友们春节快乐!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档