HTTP与Web

序论

你是否好奇当我们访问网页时,浏览器是如何识别我们输入的网址并将我们想要的内容呈现出来的吗?

当我们在地址栏输入URL(网址),浏览器会向DNS(域名服务器)提供网址,结合域名服务器来完成URL到IP地址的映射。然后将请求提交给具体服务器(发送http请求),再由服务器返回我们要的结果(html编码格式),浏览器执行HTML编码,将内容呈现给我们。

接着来简单了解一下HTTP

HTTP

简介

http超文本传输协议(Hyper Text Transfer Protocol)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传输到客户端浏览器

维基百科:

超文本传输协议Hyper Text Transfer Protocol,缩写:HTTP)是一种用于分布式协作式超媒体信息系统应用层协议

HTTP是万维网的数据通信的基础。
设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。

http历史

HTTP/0.9

于1990年被万维网之父TimBerners-Lee提出,1991年HTTP0.9问世,0.9协议是适用于各种数据信息的简洁快速协议,但是远不能满足日益发展的各种应用的需要。只接受GET一种请求方法,0.9协议就是一个交换信息的无序协议,仅仅限于文字。

HTTP/1.0

1996年的5月正式作为标准被公布,在此后的不断丰富和发展中,HTTP/1.0成为最重要的面向事务的应用层协议。该协议对每一次请求/响应建立并拆除一次连接。其特点是:

  • 不仅可以传输文字,还能传输图像、视频、二进制文件。
  • 引入了POST命令和HEAD命令
  • HTTP请求和回应的格式也变了。除了数据部分,每次通信都必须包括头信息(HTTP header),用来描述一些元数据。
  • 简单、易于管理
    所以它符合了大家的需要,得到了广泛的应用。
    HTTP/1.1
    1997年公布,持久连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式在同时发送多个请求,以便降低线路负载,提高传输速度。特点:
  • 引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用
  • 引入了管道机制,即在同一个TCP连接里面,客户端可以同时发送多个请求。
  • 采用分块传输编码,对于一些很耗时的动态操作,服务器需要等到所有操作完成,才能发送数据,显然这样的效率不高。更好的处理方法是,产生一块数据,就发送一块,采用”流模式“(stream)取代”缓存模式“(buffer)
  • 新增了许多动词方法:PUT、PATCH、HEAD、 OPTIONS、DELETE。另外,客户端请求的头信息新增了Host字段,用来指定服务器的域名
    HTTP/2
    2015年,HTTP/2 发布。它不叫 HTTP/2.0,是因为标准委员会不打算再发布子版本了,下一个新版本将是 HTTP/3,特点:
  • HTTP/2 复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应,这样就避免了”队头堵塞”。
  • HTTP/2 的头信息是一个彻底的二进制协议,头信息和数据体都是二进制,并且统称为”“(frame):头信息帧和数据帧。

Web

简介

web(World Wide Web)即全球广域网,也称为万维网,是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统,是在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超链接将Internet上的信息节点组织成一个互为关联的网状结构

万维网资源通常使用HTTP或HTTPS访问,是互联网通信协议的其中之一

起源

  • 英国科学家蒂姆·伯纳斯-李于1989年发明了万维网。
  • 1990年他在瑞士CERN的工作期间编写了第一个网页浏览器。
  • 网页浏览器于1991年在CERN以外发行,1991年1月最先向其他研究机构发行,并于1991年8月在互联网上向公众开放。
  • 1994年10月,万维网联盟(W3C)在麻省理工学院计算机科学实验室成立,创建者是万维网的发明者蒂姆·伯纳斯-李。到了1994年底,全球网站数量仍然相对稀少,但是很多著名网站已经相当活跃,这些网站已经预示或者启发了当今最流行的服务。

三个标准

万维网的核心部分是由三个标准构成的:

参考文献:

请我喝杯咖啡吧~

支付宝
微信