• HTTP简介


    前言

    HTTP是互联网上最普遍采用的一种应用协议,是现代WEB的基础。随着技术的不断发展,HTTP几乎成为了所有互联网软件和硬件应用的协议。本文大致讲述一下HTTP协议的发展历程。

    http 0.9

    1991年,Tim Berners-Lee概述了这个新协议的动机,并罗列了几条宏观的设计目标:支持文件传输、能够请求对超文本文档的索引搜索、格式化协商机制,以及能把客户端引导至不同的服务器。最初的HTTP建议是以简洁为出发点设计的,它最终实现了如下功能:

    • 客户端/服务器、请求/响应协议;
    • ASCII协议,运行于TCP/IP链接之上;
    • 设计用来传输HTML;
    • 服务器与客户端之间的连接在每次请求之后都会关闭。

    http 1.0

    1991年到1995年,HTML规范和WEB浏览器都得到了快速发展。随着人们对新兴的WEB的需求越来越多,以及它们在公共WEB上的应用迅速爆发,HTTP 0.9慢慢的不能满足现实需要。人们需要一种新协议,它不仅可以访问HTML文档,还能提供有关请求和响应的各种元数据,而且需要支持内容协商等。在一些实验性改进的基础上,HTTP工作组于1996年公布了RFC1945--解释说明了当时很多HTTP1.0实现的“公用方法”,包括媒体类型协商、内容编码、字符集支持、多部分类型、认证、缓存、代理行为、日期格式等。RFC1945也只是参考性的,并不是一个正式的规范或者标准。示例如下:

    该协议有如下新的变化:

    • 请求可以由于多行首部字段构成;
    • 响应对象前面添加了一个响应状态行;
    • 响应对象也有自己的由换行符分隔的首部字段;
    • 响应对象不局限于超文本;
    • 服务器与客户端之间的连接在每次请求之后都会关闭

    请求和响应头部都使用ASCII编码,但响应对象可以是任何数据类型,如:HTML文件、纯文本文件、图片等。此时的HTTP协议并不再局限于请求HTML文件了,已成为超媒体传输协议,但一直沿用最初的名字。

    http 1x

    将HTTP转为IETF正式互联网标准的工作与RFC1945的制定并行展开,相继发布了RFC2068和RFC2616两个HTTP1.1标准。HTTP1.1标准厘清了之前版本中很多有歧义的地方,而且还新增了很多重要的优化,如持久连接、分块编码传输、字节规范请求、增强的缓存机制、传输编码及请求管道等。

    示例如下:

    • 1.请求HTML文件及其编码、字符集和元数据;
    • 2.对原始HTML请求的分块响应;
    • 3.以ASCII十六进制数字表示的分块数据的字节数(256字节);
    • 4.分块数据流响应结束。

    • 5.在同一个TCP连接上请求图标文件;
    • 6.通知服务器不再使用连接了;
    • 7.图标响应,随后关闭连接。

     从上例可知,两次请求共用了同一个连接。HTTP1.1的连接一经打开,默认情况下是持久连接,除非主动关闭连接。在HTTP1.0里可以通过Connection:Keep-Alive首部来启用持久连接。

    http 2.0

     RFC2616发布以来,一直是互联网发展的基石。HTTP协议也成为了可以在任何领域使用的核心协议,基于这个协议人们设计和部署了越来越多的应用。HTTP的简单本质是其快速发展的关键,但随着越来越多的应用被部署到WEB上,HTTP的问题慢慢凸显出来。今天,用户和开发者都迫切需要通过THHP1.1达到一种几近实时的响应速度和协议性能,而要满足这个需求,只在原有协议上进行修补是不够的。

    为了应对这些挑战,HTTP必须继续发展。HTTP工作组已经在2012年宣布要设计和开发HTTP2.0。HTTP2.0的主要目标是改进传输性能,实现低延迟和高吞吐量。关于HTTP2.0的详细介绍将在以后的文章中进行讲述。

  • 相关阅读:
    POJ 2236
    HDU 6027
    FZU 2278
    FZU 2282
    python之----------字符编码的原理
    python可变数据类型和不可变数据类型
    python的运算符和while循环
    python之字符串的切片
    python数据类型补充
    python的数据类型
  • 原文地址:https://www.cnblogs.com/syfwhu/p/5219823.html
Copyright © 2020-2023  润新知