HTTP &RFC
HTTP
1,HTTP所表达的控制以及描述性相关的信息都包含在了HTTP的起始行和首部之中。BNF的使用使得自己能够清晰的梳理出起始行和首部中所有类别的元信息。对于每一类的元信息具体包含哪些内容也能够有所了解。这一抽象的方法不仅HTTP协议定义的时候比较严谨之外,在实现HTTP解析器(浏览器)的时候参照BNF写代码是非常容易实现的。这也提醒了我们在编写相关的系统设计方案的时候是可以借鉴类似的方法的。毕竟使用文字表述的设计方案存在这问题遗漏,表述不够清晰,不同人理解有所差异等方面的问题。(我们会看到在FTP之中也有类似的方法,状态图)。HTTP被设计成为一种非常容易扩展的协议,因此协议时松散的。头域可以加入需要的头部名和指定的值,尽管有的头部没有加入RFC标准,但是可能成为约定成俗的标准(虽然这会给HTTP的安全性带来了挑战),由此可以看出良好的设计方案在一开始的时候就考虑到其以扩展性,这也是HTTP能够长期存在,不断发展的原因。
2,FTP采用的是控制和数据相分离的模式实现文件的传送。首先这一设计思想在程序的设计之中本身就很常见。FTP采用的是命令+响应码的形式来控制文件传输的功能,若干条命令+不同类别的响应码会导致不同的结果,其组合方式多种多样,但是FTP的RFC文档给出了这些组合的状态图。六种类型的状态图覆盖了FTP可能的所有情况。前面我们提到HTTP的BNF表示方法利于编写程序,这里的状态图同样给出了编写完备FTP软件的指导性方法。当然状态图也可以看出有的命令是有先后顺序的,但是大多数的命令是没有此要求的。
3,RTSP可以说基本复用了HTTP的设计思路,从请求和响应的消息组成可以清晰的看出。但是其也借鉴了FTP中相关的优秀思想。比如数据和控制的分离,RTSP的数据传输就是由RTP/RTCP等协议去实现的。在HTTP中,请求响应模式采用的是CS的模式,即客户端发起请求,服务器应答响应。FTP的就发生了变化,首先在FTP的架构之中存在这一个客户端控制这两个服务器的通信。两个SERVER的通信以及在FTP中的Port模式下(数据连接是由服务器发起的),这两种情况跟HTTP就很不相同。至于到了RTSP请求是双向的。
总的来说三种协议都是基于文本的应用层协议,基于文本的协议在需要某些属性、方法或者命令的时候能够比较方便的添加。相对与传输层以及网络层(虽然也有扩展)来说,固定的位置表达的含义是确定的,基于文本的协议比较灵活多变。当然协议最基本的分层原则也在HTTP,FTP以及RTSP中有所体现,即应用层协议应尽量减少其与下层之间的耦合性。虽然常见的HTTP都是基于TCP协议的,但是HTTP并不关心整个HTTP消息在传输层如何使用的。
RFC
HTTP &RFC的更多相关文章
- SAP RFC
什么是RFC? RFC是SAP系统和其他(SAP或非SAP)系统间的一个重要而常用的双向接口技术,也被视为SAP与外部通信的基本协议.简单地说,RFC过程就是系统调用当前系统外的程序模块,从而实现某个 ...
- SAP学习日志--RFC REMOTE FUNCTION CALL
RFC Remote function Call 远程功能调用, 是SAP系统之间以及非SAP系统之间程序通信的基本接口技术. 例如BAPI , ALE都是基于RFC实现的 SAP系统提供了三种外部 ...
- SAP 调用RFC 的时候记录异常报错方式
DATA: lv_error TYPE char100. CALL FUNCTION 'ZRFC_WM_ZEL001' DESTINATION lv_desc EXPORTING process_fl ...
- 什么是RFC
通俗的话来说,RFC是关于Internet的几乎所有重要的文字资料,相当于一个Internet的标准. 下面是查询网址:http://www.rfcreader.com/ 一下为百科定义: http: ...
- RFC(请求注解)--各种协议-标准
转自:http://blog.sina.com.cn/s/blog_65d6476a0101cj8n.html RFC(Request For Comments)-意即“请求注解”,包含了关于Inte ...
- [BTS] RFC IDOC_INBOUND_ASYNCHRONOUS
Error Message: Log Name: ApplicationSource: BizTalk ServerDate: 9/10/2013 3:56: ...
- .NET通过RFC读取SAP数据
本篇文章中我主要讲的是.NET如何通过RFC从SAP中读取数据.为了功能的可复用性,我将调用RFC的代码从业务层中分离出来单独建立在一个namespace中. 当然除了需要我们自己编写代码以外,还需要 ...
- C# 使用 SAP NCO3.0 调用SAP RFC函数接口
最近使用C#调用SAP RFC函数,SAP提供了NCO3.0组件. 下载组件安装,之后引用“sapnco.dll”和“sapnco_utils.dll”两个文件. 在程序中 using SAP.Mid ...
- C#通过RFC调用SAP
using System;using System.Collections.Generic;using SAP.Middleware.Connector;using System.Data;using ...
- (转) IPv6相关RFC
转自http://blog.csdn.net/lucien_cc/article/details/12688477 IPv6 Spec RFC 2460 : Internet Protocol, Ve ...
随机推荐
- CSS盒模型深入理解
前言 所有文档元素都生成一个矩形框,这称为元素框(element box),它描述了一个元素在文档布局中所占的空间大小.而且,每个框影响着其他元素框的位置和大小 宽高 宽度width被定义为从左内边界 ...
- [Android] Android 实现类似 今日头条 视频播放列表
演示实例如下: Talk is cheap. Show me the code 话不多说,代码在这里下载! https://github.com/wukong1688/Android_BaseVide ...
- tomcat无法正常关闭问题分析及解决
问题描述 通常,我们都会直接使用tomcat提供的脚本执行关闭操作,如下: # sh bin/shutdown.sh Using CATALINA_BASE: /usr/local/apache-to ...
- [物理学与PDEs]第4章第2节 反应流体力学方程组 2.3 混合气体状态方程
1. 记号与假设 (1) 已燃气体的化学能为 $0$. (2) 单位质量的未燃气体的化学能为 $g_0>0$. 2. 对多方气体 (理想气体当 $T$ 不高时可近似认为), $$\bex ...
- python学习04
数据类型-list,tuple 1) 1.1.list的表现方法:[1,2,3,4,5,6] 1.2.计算list的长度用 len() 1.3 list中的索引 a =[1,2,3,4,5] a[1] ...
- 有关于 java native方法
看java源码时,经常看到native方法后,就没有具体的是实现了. 以前一直有疑惑,今天查了查,看到前辈们的博文才明白: Java的native方法http://blog.csdn.net/wike ...
- 【原创】大数据基础之Zookeeper(3)选举算法
提到zookeeper选举算法,就不得不提Paxos算法,因为zookeeper选举算法是Paxos算法的一个变种: Paxos要解决的问题是:在一个分布式网络环境中有众多的参与者,但是每个参与者都不 ...
- centos7中设置nginx的systemctl启动方式
1.建立服务文件 (1)文件路径 vim /usr/lib/systemd/system/nginx.service (2)服务文件内容 [Unit] Description=nginx - high ...
- 获取元素属性get_attribute
获取text # coding:utf-8 from appium import webdriver from time import sleep desired_caps = { 'platform ...
- bzoj 2028(会场预约)
题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地. 这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就是说,前一 ...