为何HTTP被翻译为“超文本传输协议”是一次历史上的重大翻译错误??!!_hypertext transfer protocol 翻译误解-程序员宅基地

原贴地址:http://www.ituring.com.cn/article/937?1364996918

HTTP 1.0协议(RFC1945)是在1996年5月发布的,其中文名“超文本传输协议”估计大约也是在1996年左右诞生的。从此以后,这个名称就被固定了下来,一直沿用到今天。 非常遗憾,这是一个错误的翻译,而且错误的性质很严重。具体来说,就是将“Hypertext Transfer Protocol”其中的“transfer”翻译错了。不应该将“transfer”翻译为“传输”,而应该翻译为“转移”或者“传递”。“传输”的英文单词应该是“transport”,而不是“transfer”。其实如果最初的译者确实曾经认真读过一些互联网协议,例如HTTP协议、FTP协议等等,就会很容易地发现,在这些协议中,“transfer”和“transport”的含义有明显的区别,根本无法混用。虽然IETF的RFC在格式上比ITU-T的那些规范要自由地多,但是RFC的作者都是非常严谨的,在术语的使用上面很少出现因混用导致的歧义。 在IETF的RFC中,“transport”(传输)的含义是指:从端到端(例如从ip1:port1到ip2:port2)可靠地搬运比特,也就是TCP/IP协议栈中的第3层传输层(transport layer)协议所做的那些事情。将“transport”翻译为“传输”,100%正确! 而“transfer”的含义是:通过在客户端-服务器端之间转移一些带有操作语义的操作原语,来执行某种操作。“transfer”是TCP/IP协议栈中的第4层应用层的概念,而不是第3层传输层的概念。“transfer”所转移的是带有明确操作语义的操作原语,而不是没有操作语义的比特流。 不仅仅非专业的翻译者很难理解“transfer”和“transport”的区别,很多经验丰富的Web开发者也常常混淆两者的区别。即使在母语为英语的国家,同样也存在着很多混淆。但是理解两者之间的区别,是理解HTTP协议本质的关键。为了澄清这个问题,HTTP 1.1协议的主要作者Roy Fielding在其2000年发表的博士论文《Architectural Styles and the Design of Network-based Software Architectures》(中文版名为《架构风格与基于网络的软件架构设计》)的6.5.3小节中专门强调:HTTP并不是一种传输协议,其具体内容参见下一个问题。

综上所述,HTTP协议名称中的“transfer”可以肯定是与“传输”没什么关系的。“传输”这件事情,传输层协议TCP/UDP已经做的很好了,不需要HTTP再来越俎代疱。既然“transfer”与“transport”含义有明显区别,而“transport”又被正确地翻译为“传输”,那么将“transfer”也翻译为“传输”,必然会带来很大的误导。从实事求是的角度,我们作为专业的Web开发者,不应该任由“超文本传输协议”这个名词以讹传讹继续流传下去,贻害广大初学者。

那么将“transfer”翻译为什么更好呢?我在翻译Fielding博士论文时,对于这个问题曾经纠结了很长时间。在中文之中,将“transfer”翻译为“转移”或者“传递”,都比翻译为“传输”要好。我最后选择了“转移”,而没有选择“传递”,主要原因是“传递”与“传输”仅有一字之差,仍然会让不求甚解的开发者产生误解,误以为“传递”与“传输”完全是相同的含义。

于是,我在Fielding博士论文中文版和《REST实战》中文版中,都将HTTP翻译为“超文本转移协议”,将REST翻译为“表述性状态转移”。在大多数地方,都将transfer统一翻译为“转移”。当然,如果你真的理解了“transfer”和“transport”之间的区别,将HTTP翻译为“超文本传递协议”,将REST翻译为“表述性状态传递”都是可以的。

具体到HTTP协议,“transfer”代表的含义是:通过在客户端-服务器端之间转移代表资源当前状态的资源表述,来对服务器端的资源执行某种操作。这既是缩写词HTTP中“transfer”的含义,也是缩写词REST中“transfer”的含义。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/crz03128/article/details/8757716

智能推荐

关于Guava-Retry重试工具的使用_guava retry demo-程序员宅基地

文章浏览阅读1.2k次。关于Guava-Retry重试工具的使用1 guava-retry的简介2 guava-retry的使用1 导入maven依赖2 添加一个重试方法3 添加测试类3 总结官网地址:https://github.com/rholder/guava-retryinghttps://codechina.csdn.net/mirrors/rholder/guava-retrying?utm_source=csdn_github_accelerator1 guava-retry的简介在日常的一些场景中, 很多_guava retry demo

The Leaky Integrate-and-Fire (LIF) Neuron Mode-LIF神经元模型-程序员宅基地

文章浏览阅读7.5k次,点赞10次,收藏45次。The Leaky Integrate-and-Fire (LIF) Neuron Mode基础知识_leaky integrate-and-fire

vscode_neovim(vim enhanced)配置与使用@通过变量$MYVIMRC来修改vim配置文件_vscode neovim-程序员宅基地

文章浏览阅读5.3k次。文章目录neovim官网用scoop 安装安装vscode extension配置方式1:配置方式2使得配置生效neovim官网这一部分独立于VScode进行安装(当然也可以独立于vscode进行使用)official introduction有三种方式安装它我以通用的而且简单的install from download方式安装(其实就是将官方压缩包解压一下即可)(我在windows下安装)用scoop 安装如果您的网络环境允许,scoop安装时不错的选择通过nvim可以在终端(p_vscode neovim

F. Fair Distribution——The 18th Zhejiang Provincial Collegiate Programming Contest_there are nn robots and mm energy bars in the drea-程序员宅基地

文章浏览阅读1.1k次。F. Fair Distributiontime limit per test1 secondmemory limit per test512 megabytesinputstandard inputoutputstandard outputThere are n robots and m energy bars in the Dream Kingdom. DreamGrid, the king, is trying to make a fair distribution of the energ_there are nn robots and mm energy bars in the dream kingdom. dreamgrid, the

Eclipse&STS相关介绍_eclipse&sts开发工具介绍-程序员宅基地

文章浏览阅读924次。不同版本Eclipse对JDK版本要求https://blog.csdn.net/kevin_pso/article/details/54971739?utm_source=blogxgwz7STS 下载及配置STS官网: https://spring.io/tools3/sts/all/STS历史版本: https://spring.io/tools3/sts/legacyST..._eclipse&sts开发工具介绍

随便推点

《并发数据结构与多核编程》“并发”知识整理,复习笔记,建议收藏!-程序员宅基地

文章浏览阅读1.3k次,点赞6次,收藏14次。并发的思想和基本知识对于一个从程序员来说很重要,尤其是在当下的大数据、分布式、多处理器的时代。但是并发这门课学习起来可不轻松,这里整理我学习并发的知识,与大家分享~欢迎大家关注我的公众号DataFortune,文章包括但不限于人工智能、信号处理、python、图像处理。之后还会发布更多优秀博文,期待你的关注!文章目录第一讲 绪论第二讲 互斥算法第三讲 并发对象可线性化:第四讲 共享内存基础第五讲 共识协议和同步操作原语第六讲 空转锁和争用第七讲 管程和阻塞同步第八讲 链表第九讲 并发队列和并发栈第._并发数据结构与多核编程

masm5安装教程_masm5 1、下载个masm5.0(简单 联合开发网 - pudn.com-程序员宅基地

文章浏览阅读887次。masm5所属分类:汇编语言开发工具:DOS文件大小:524KB下载次数:10上传日期:2010-11-16 13:20:33上 传 者:叶丹丹说明:1、下载个masm5.0(简单,适合初学者),里面至少应包含masm.exe和link.exe,可能还包含其他的,不过我们只需要最基本的这两个。2、将masm5.0压缩包里的程序解压(包含masm.exe和link.exe),放到一个目录中(如D..._masm.5.0下载

解决LINK : fatal error LNK1140: 用于程序数据库的模块太多;链接时使用 /PDB:NONE 的错误_fatal error lnk1140: 用于程序数据库的模块太多;链接时使用 /pdb:none-程序员宅基地

文章浏览阅读8.2k次。某些不需要调试的工程 设置pdb:nonevs链接库文件数量有上限 右键工程->属性->链接器->调试->生成程序数据库文件 选择继承父类就好了_fatal error lnk1140: 用于程序数据库的模块太多;链接时使用 /pdb:none

面试官问你:你有什么想问的,你这么回答会给你加分_面试中面试官问你你想问我点什么-程序员宅基地

文章浏览阅读4k次。如果面试官问你:你有什么想问的?这通常表示面试到了尾声,但这并不是面试就要结束的标志,而是面试官给你扔过来的一个坑,如果这个问题回答好,就可以为面试加分,如果回答的不好,则同样会减分。那么,你提什么样的问题最好呢?提关于工作岗位、公司情况的问题工作不仅是谋生,也是对自己和用人单位的一种承诺。应聘人员这样问,表明自己想通过仔细了解工作内容和公司环境,审慎地考虑这份工作是不是适合自己。如果应聘..._面试中面试官问你你想问我点什么

QT 操作 sqlite数据库(二)----问题与其解决方案_sqlite no such function: concat-程序员宅基地

文章浏览阅读6.1k次。上一节从网络上找了一个一般的示例给大家,下面将逐步修改代码将其变为常规开发中可用的可复用代码。首先说下上面的代码在本人实际使用过程中遇到的问题及如何结果1、创建程序后提示“QSqlDatabase: No such file or directory” 的错误2、大部_sqlite no such function: concat

HTML列表项目结点:HTMLCollection和NodeList-程序员宅基地

文章浏览阅读251次。HTMLCollection是元素集合(元素顺序为文档流中的顺序),它和NodeList很像,有length属性来表示HTMLCollection对象的长度,可以通过 item() 传入数字索引来访问单个元素(也可通过方括号[ ]的方式)。当时它还有一个 nameItem() 方法,可以返回集合中指定 name 属性值 或 id 属性值的元素。HTMLCollection是即时更新的,当其所包含的..._html [object nodelist]

推荐文章

热门文章

相关标签