zoukankan      html  css  js  c++  java
  • HTTP和RFC

    RFC:

        Request For Comments(RFC),是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。目前RFC文件是由Internet Society(ISOC)赞助发行。基本的互联网通信协议都有在RFC文件内详细说明。RFC文件还额外加入许多的论题在标准内,例如对于互联网新开发的协议及发展中所有的记录。因此几乎所有的互联网标准都有收录在RFC文件之中。

           RFC文件只有新增,不会有取消或中途停止发行的情形。但是对于同一主题而言,新的RFC文件可以声明取代旧的RFC文件。RFC文件是纯 ASCII文字档格式,可由电脑程序自动转档成其他档案格式。RFC文件有封面、目录及页首页尾和页码。RFC的章节是数字标示,但数字的小数点后不补零,例如4.9的顺序就在4.10前面,但9的前面并不补零。RFC1000这份文件就是RFC的指南。

    RFC文件是由Internet Society审核后给定编号并发行。虽然经过审核,但RFC也并非全部严肃而生硬的技术文件,偶有恶搞之作出现,尤其是4月1日愚人节所发行的,例如RFC 1606: A Historical Perspective On The Usage Of IP Version 9 (参见IPv9)、RFC 2324: “超文本咖啡壶控制协议”(Hyper Text Coffee Pot Control Protocol,乍有其事的写了HTCPCP这样看起来很专业的术语缩写字)。以及如前面所提到纪念RFC的30周年庆的RFC文件。
    RFC文档大致可以分为以下几类:
    1.STD RFC
           按照RFC1311的定义,STD RFC是指那些已经或者致力于成为Internet标准的RFC。只有经过完全Internet标准化过程的RFC才可以有STD编号,STD编号是不变的,而其涉及到的 RFC文档可能不只一个,其RFC编号也会更新。如STD13(Domain Name System)就涉及RFC1 034和RFC1035。STD的标准化过程要经过几个步骤,首先由IETF起草标准(也可能是其他组织和个人,但一般都是和IETF共同完成的),形成Internet Draft(ID),ID没有RFC编号。如果ID在6个月内IESG没有建议成为RFC,则取消此ID。成为RFC后,还要经过一系列的审查、修订、测试等才能最终成为Internet标准。
    2.BCP RFC
          由于Internet应用领域广泛,各种不同的组织有不同的使用目的和使用规则,IETF除了建议STD以外,也有必要对于Internet的使用和管理提供一些一般性的指导,同时也为I ETF、IAB、IESG提供一种渠道,以便推动某一方面的工作,反映其技术趋向,反映这些组织本身的工作进展。于是,1995年以RFC1818定义了BCP,即Best Current Practice。BCP同时有一个BCP编号和一个RFC编号,一旦约定了一个BCP编号,就不会再变,而其RFC编号则可能会经过修订不断更新。例如反映Internet标准化工作程序的BCP9的RFC编号就从RFC16 02上升到RFC2026,相应地就废弃了RFC1602。BCP在发表以前,以电子邮件的形式广泛征求IETF的意见,经过IESG的审查,通过后即正式发表。但是BCP本身不是Internet标准。
    3.FYI RFC
           FYI是For Your Information的简写,1990年发表的RFC1150(FYI1)定义了FYI,FYI也同时有一个FYI编号和一个RFC编号,FYI编号是固定的。FYI主要是提供有关Internet的知识性内容。如FYI4(RFC1594),"Answers to Commonly asked New Internet User Quest ions"。所有的FYI在提交到RFC编辑以前,必须先经过IETF的User Services WorkingGro up审查。
    4.其他RFC
            除了STD、BCP、FYI以外还有其他一些RFC。从RFC899开始,所有以99结尾的RFC都是对此前99个RFC的一个概括。如RFC1999就是对RFC1900到RFC1999的一个简单概括。除了上述分类以外,还有一些描述RFC的方法。与Internet标准化过程(Internet Standards Process)有关的规范可以分为两类,即 Technical Specification(TS),Applicability Statement(AS)。TS是对协议、规则、格式、实用程序的描述。AS是描述在何种环境,以及怎样在Internet中使用TS;AS所涉及的并不一定全是Internet标准,比如IEEE、ITU、ISO组织的一些标准,大家所熟悉的ASCII标准就是一例。AS应该对其涉及的TS规定相应的级别"Requirement Level",这些"Require ment Level"如下: ·Required(Req),相当于必须实现,如IP、ICMP; ·Recommended(Rec),鼓励使用,如TELNET; ·Elective(Elc),可选择的; ·Limited Use,只限于特定的用户,一般说来用于对一些新的协议做试验; ·Not Recommended,不要使用,很可能是过时的。"Maturity Level"也是用来描述TS和AS的一种方式,它反映这些标准是否成熟。对于致力于成为STD的TS和AS有三种"Maturity Level"。·Proposed Standard,基本成熟,但还需要进一步的试验证实其可行性。除非是用来验证该协议的可行性,不要将其视为标准实现。·Draft Standard,需要两个独立的,而且具有相互操作性的实例验证该协议的每一个方面。可以将其视为最终的标准草案; ·Internet Standard,最终的Internet标准,同时赋予一个STD编号。除此之外的TS和AS分为以下几种"Maturity Level"。·Experimental,一般是反映一些研究和开发的成果,只应将此看作是一般性的信息。·Informational,反映与Internet标准有关的一般性信息。有些也是有关非Intern et组织开发的一些协议,但必须得到协议开发者的许可。·Historic,是一些被新的标准取代或者是已经过时废弃不用的标准。STD1(RFC2200)——Internet Official Protocol Standards,定期更新,反映最新的 Internet标准。另外,对于关注Internet的人来说,应该经常注意查阅BCP9的最新内容。

    http:

        超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

        HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

        HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

        超文本传输协议已经演化出了很多版本,它们中的大部分都是向下兼容的。在RFC 2145中描述了http版本号的用法。客户端在请求的开始告诉服务器它采用的协议版本号,而后者则在响应中采用相同或者更早的协议版本。
    0.9 已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。
    HTTP/1.0 这是第一个在通讯中指定版本号的HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。
    HTTP/1.1 当前版本。持久连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。
    HTTP/1.1相较于 HTTP/1.0 协议的区别主要体现在:
    1 缓存处理
    2 带宽优化及网络连接的使用
    3 错误通知的管理
    4 消息在网络中的发送
    5 互联网地址的维护
    6 安全性及完整性
  • 相关阅读:
    数据结构 字符串的长度
    滚动条
    git push 一直卡在 writing objects 然后 就提交失败 提示:unexpected-disconnect-while-reading-sideband-packet
    vue中的防抖和节流
    html5中output元素详解
    手写 apply call bind 三个方法
    js中的陷阱!!!
    display:inline-block元素之间空隙的产生原因和解决办法
    git push到Gitee的时候上传不成功,可能是本地文件夹与远程仓库不同步
    axios没有实现jsonp这个功能,基于axios自己扩展一个
  • 原文地址:https://www.cnblogs.com/tily123/p/10492431.html
Copyright © 2011-2022 走看看