zoukankan      html  css  js  c++  java
  • 自学HTTP RCF体会

    一.HTTP

    1.关于HTTP的诞生

         CERN(欧洲核子研究组织)的蒂姆 • 伯纳斯 - 李(Tim BernersLee)博士提出了一种能让远隔两地的研究者们共享知识的设想。

      最初设想的基本理念是:借助多文档之间相互关联形成的超文本(HyperText),连成可相互参阅的 WWW(World Wide Web,万维网)。

      现在已提出了 3 项 WWW 构建技术,分别是:把 SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文本标记语言的 HTML(HyperText Markup Language,超文本标记语言);作为文档传递协议的 HTTP ;指定文档所在地址的 URL(Uniform Resource Locator,统一资源定位符)。

      1990 年 11 月,CERN 成功研发了世界上第一台 Web 服务器和 Web 浏览器。两年后的 1992 年 9 月,日本第一个网站的主页上线了。

    2.HTTP标准演变过程

      HTTP/0.9于 1990 年问世。那时的 HTTP 并没有作为正式的标准被建立。这时的 HTTP 其实含有 HTTP/1.0 之前版本的意思,因此被称为 HTTP/0.9。

      HTTP 正式作为标准被公布是在 1996 年的 5 月,版本被命名为 HTTP/1.0,并记载于 RFC1945。虽说是初期标准,但该协议标准至今仍被广泛使用在服务器端。RFC1945 - Hypertext Transfer Protocol -- HTTP/1.0

      1997 年 1 月公布的 HTTP/1.1 是目前主流的 HTTP 协议版本。当初的标准是 RFC2068,之后发布的修订版 RFC2616 就是当前的最新版本。RFC2616 - Hypertext Transfer Protocol -- HTTP/1.1

      当年 HTTP 协议的出现主要是为了解决文本传输的难题。由于协议本身非常简单,于是在此基础上设想了很多应用方法并投入了实际使用。现在 HTTP 协议已经超出了 Web 这个框架的局限,被运用到了各种场景里。

    3.HTTP的网络基础TCP/IP

      3.1 TCP/IP协议族

        计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protocol)。TCP/IP 是互联网相关的各类协议族的总称

      3.2 TCP/IP 的分层管理

        TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。

        应用层:应用层决定了向用户提供应用服务时通信的活动。

        传输层:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。

        网络层:网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。

        数据链路层:用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。

    二.HTTP运作方式

      HTTP协议是请求/响应协议。客户端发送一个以请求方法,URI和形式请求到服务器协议版本,后跟包含请求的类似MIME的消息修饰符,客户信息和可能的身体内容与服务器的连接。服务器响应状态行,包括消息的协议版本和成功或错误代码,后跟包含服务器信息,实体的类似MIME的消息元信息,以及可能的实体 - 身体内容。

      1.大部分HTTP通信由用户代理并由一下内容组成资源请求。    

      请求链------>UA------ v------O.<------响应链

      v(单个连接)  UA(用户代理)O(源服务器

      2.当一个或多个中间人出现时,会出现更复杂的情况存在于请求/响应链中。有三种常见的中介形式:代理,网关和隧道。代理是一个转发代理,以绝对形式接收URI请求,重写全部或部分消息,并转发重新格式化的消息对URI标识的服务器的请求。网关是一个接收代理,作为一些其他服务器之上的层,如果必要的,将请求转换为底层服务器协议。隧道充当两个连接之间的中继点不改变消息; 当使用隧道时沟通需要通过中介

      请求链------>UA------v------A------v------B------v------C------v------O.<------响应链

      上图显示了三个中介(A,B和C)之间用户代理和原始服务器。请求或响应消息旅行整个连锁店将通过四个独立的连接。

      3.任何不作为隧道的通信方可以使用内部缓存来处理请求。缓存的效果是,如果其中之一,请求/响应链缩短链中的参与者有适用于此的缓存响应请求。

      请求链------>UA------v------A------ v------B - - - - - - C - - - - - - O .<------响应链

      并非所有响应都可以缓存,有些请求可能会包含对缓存行为有特殊要求的修饰符。

  • 相关阅读:
    JZOJ1495 宝石
    JZOJ1496 页
    jzoj1497. 景点中心
    2019.8.2总结
    学习进度报告2021/3/19
    学习进度报告2021/3/18
    《学会提问》读书笔记2
    学习进度报告2021/3/17
    学习进度报告2021/3/16
    学习进度报告2021/3/15
  • 原文地址:https://www.cnblogs.com/z1105/p/10467071.html
Copyright © 2011-2022 走看看