概览:web是建立在何种技术之上、http如何诞生并发展


1.1 通过http协议访问web

截屏2020-09-03 下午7.54.06.png
web使用HTTP(HyperText Transfer Protocol 超文本转移协议)作为规范,完成客户端到服务端的一系列流程,协议即是 规则的约定

1.2 HTTP的诞生

1.2.1 为知识共享而规划Web

CERN的蒂姆·伯纳斯·李提出一种能让远隔两地的研究者共享知识的设想:

借助多文档之间相互关联形成的超文本(HyperText),连成可相互参阅的World Wide Web

1.2.2 web成长时代

  • 1990年11月,CERN研发出世界第一台web服务器和web浏览器
  • 1990年,HTML1.0草案开始讨论
  • 1993年,NCSA研发的Mosaic问世,以内联等形式展示HTML的图像,并流行起来
  • 1994年,网景发布Netscape Navigator 1.0
  • 1995年,微软发布Internet Explorer 1.0;Apache发布2.0,现在已经是web服务器标准之一;HTML2.0发布
  • 2004年,Mozilla基金会发布Firefox浏览器
  • 。。。

    1.2.3 驻足不前的HTTP

    HTTP/0.9 1990年问世,还未正式建立
    HTTP/1.0 1996年正式发布,至今仍然广泛使用在服务器端,记载于RFC1945
    HTTP/1.1 1997年发布,目前主流的HTTP协议版本,RFC2616是最新版本
    HTTP/2.0 。。。
    HTTP协议主要为了解决文本传输的难题,如今已经超出了web这个框架的局限,应用到各种场景里了

    1.3 网络基础 TCP/IP

    通常使用的网络是在TCP/IP协议族的基础上运作的,HTTP属于它内部的一个子集

    1.3.1 TCP/IP 协议族

    不同硬件、操作系统之间如何通信,如何探测通信目标、由哪一方先发起通信、使用什么语言进行通信、怎样结束通信等规则,称为 协议 (protocol)
    截屏2020-09-03 下午8.13.27.png
    协议包括各种各样的内容,从电缆的规格到IP地址的选定方法。。。
    与互联网相关联的协议集合起来称为TCP/IP

    1.3.2 TCP/IP的分层管理

    TCP/IP协议族按层次可分为:

  • 应用层:决定了向用户提供应用服务时通信的活动,FTP、DNS、HTTP

  • 传输层:提供处于网络连接中两台计算机之间的数据传输,TCP、UDP
  • 网络层:用来处理网络中流动的数据包,规定了通过怎样的路径到达对方的计算机,把数据包给对方,相当于在众多选项中找到一条合适的传输路线,IP
  • 数据链路层:用来处理连接网络的硬件部分,包括操作系统、设备驱动等,硬件范畴的东西可以认为在这一层

利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层往上走
截屏2020-09-03 下午8.22.25.png
发送端在层与层之间传输数据时,每经过一层必然打上一个该层的首部信息;
反之,接收端每经过一层也会消去对应的首部
这种包装方法叫做 封装

1.4 与HTTP关系密切的协议:IP、TCP、DNS

1.4.1 负责传输的 IP 协议

Internet Protocol网络协议位于网络层,所有使用网络的系统都会用到IP协议
IP协议的作用是把数据包传送给对方,为了保证确实传送给对方,要有两个重要条件:

  • IP地址:指明节点被分配到的地址
  • MAC地址(Media Access Control Address):网卡所属的固定地址

两者可以进行配对,可通过ARP协议(Address Resolution Protocol)通过IP反差出MAC地址,IP地址可变化,但MAC地址不会更改
为什么需要两者转换才可以找到节点呢?因为网络中,大多数数据传输发生在不同的局域网中,需要经过多次中转,每次中转需要下一站的MAC地址,所以会采用ARP进行解析

这种机制称为路由选择(routing),有点像快递公司的送货过程。想要寄快递的人,只要将自己的货物送到集散中心,就可以知道快递公 司是否肯收件发货,该快递公司的集散中心检查货物的送达地址,明 确下站该送往哪个区域的集散中心。接着,那个区域的集散中心自会 判断是否能送到对方的家中。

截屏2020-09-04 下午9.14.46.png

1.4.2 确保可靠的TCP协议

TCP位于传输层,提供可靠的字节流服务
Byte Stream Service 是指为了方便传输而将大块数据分割成以报文段(Segment)为单位传输的数据包
可靠的数据传输 是指能把数据准确可靠的传给对方,采用了三次握手来保证数据成功送达截屏2020-09-06 上午11.42.37.png
除此之外,tcp还有各种手段保证通信的可靠性

1.5 负责域名解析的DNS服务

与HTTP协议同样位于应用层,提供域名到IP地址的解析服务
截屏2020-09-06 上午11.44.12.png

1.6 各种协议与HTTP协议的关系

截屏2020-09-06 上午11.47.05.png

1.7 URI和URL

URI:统一资源标识符,Uniform Resource Identifier
URL:统一资源定位符

1.7.2 URI格式

绝对URI的格式:
截屏2020-09-06 上午11.49.54.png

用来制定HTTP协议技术标准的文档,被称为RFC(Request for Comments,征求修正意见书) 应用程序遵照RFC确定的标准实现,如果不这样可能导致一个web服务器的应用服务无法被访问到,无法进行HTTP通信,所以客户端和服务端都会以RFC为标准来实现HTTP协议