概览:web是建立在何种技术之上、http如何诞生并发展
1.1 通过http协议访问web

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)

协议包括各种各样的内容,从电缆的规格到IP地址的选定方法。。。
与互联网相关联的协议集合起来称为TCP/IP1.3.2 TCP/IP的分层管理
TCP/IP协议族按层次可分为:
应用层:决定了向用户提供应用服务时通信的活动,FTP、DNS、HTTP
- 传输层:提供处于网络连接中两台计算机之间的数据传输,TCP、UDP
- 网络层:用来处理网络中流动的数据包,规定了通过怎样的路径到达对方的计算机,把数据包给对方,相当于在众多选项中找到一条合适的传输路线,IP
- 数据链路层:用来处理连接网络的硬件部分,包括操作系统、设备驱动等,硬件范畴的东西可以认为在这一层
利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层往上走。
发送端在层与层之间传输数据时,每经过一层必然打上一个该层的首部信息;
反之,接收端每经过一层也会消去对应的首部
这种包装方法叫做 封装
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),有点像快递公司的送货过程。想要寄快递的人,只要将自己的货物送到集散中心,就可以知道快递公 司是否肯收件发货,该快递公司的集散中心检查货物的送达地址,明 确下站该送往哪个区域的集散中心。接着,那个区域的集散中心自会 判断是否能送到对方的家中。
1.4.2 确保可靠的TCP协议
TCP位于传输层,提供可靠的字节流服务
Byte Stream Service 是指为了方便传输而将大块数据分割成以报文段(Segment)为单位传输的数据包
可靠的数据传输 是指能把数据准确可靠的传给对方,采用了三次握手来保证数据成功送达
除此之外,tcp还有各种手段保证通信的可靠性
1.5 负责域名解析的DNS服务
1.6 各种协议与HTTP协议的关系
1.7 URI和URL
URI:统一资源标识符,Uniform Resource Identifier
URL:统一资源定位符
1.7.2 URI格式
绝对URI的格式:
用来制定HTTP协议技术标准的文档,被称为RFC(Request for Comments,征求修正意见书) 应用程序遵照RFC确定的标准实现,如果不这样可能导致一个web服务器的应用服务无法被访问到,无法进行HTTP通信,所以客户端和服务端都会以RFC为标准来实现HTTP协议
