第一章:了解Web及网络基础
本章概述了Web是建立在何种技术之上,以及HTTP协议是如何诞生并发展的。
1.1 使用HTTP协议访问Web
我们在网页地址栏中输入url时,Web页面是如何呈现的呢?
之前我写过以前博客:从浏览器中输入URL ,到最终看到页面内容,这个中间都经历了那些过程?
Web浏览器地址栏中指定的URL,Web浏览器从Web服务器端获取资源文件等信息,在显示在Web页面。
在这里Web浏览器就是我们所说的客户端。
客户端与服务器之间使用了一种协议,即HTTP(超文本传输协议)。协议也就是一种通信双方约定俗成的规定。
1.2 HTTP的诞生
1.2.1 为知识共享而规划Web
1989年3月,互联网还只属于少数人。在这一互联网的黎明期,HTTP出现了。
CERN的蒂姆 伯纳斯-李博士提出了一种能让远隔两地的研究者们共享知识的设想。
最初的设想是:借助多文档之间的相互关联形成的超文本,连成可互相参阅的WWW(World Wide Web,万维网)。
现在已提出3项WWW构建技术:
- SGML(标准通用标记语言):作为页面的文本标记语言的HTML(超文本标记语言)
- HTTP:文档传递协议
- URL:指定文档所在地址
WWW这一名称,是Web浏览器当年用来浏览超文本的客户端应用程序时的名称。现在则用来表示这一系列的集合,也可简称为Web。
1.2.2 Web成长时代
1990年11月,CERN成功研发世界上第一台Web服务器和Web浏览器。
- 日本第一个主页(1992年9月)
- HTML1.0(1990年)
- NCSA Mosaic bounce page (1993年1月)
- The NCSA HTTPd Home Page(1993年秋)
1.2.3 驻足不前的HTTP
- HTTP/0.9(1.0之前的版本)
- HTTP/1.0(1996年5月)
- HTTP/1.1(1997年1月)
1.3 网络基础 TCP/IP
我们通常使用的网络是在TCP/IP协议族的基础上运作的。而HTTP属于它内部的一个子集。(这本书读完之后,后边会更新图解TCP/IP)
1.3.1 TCP/IP协议族
计算机与网络设备要相互通信,双方就必须基于相同的方法 。双方根据相同的规则就行通信,而我们把这种规则称为协议。
像这样把与互联网相关联的协议集合起来总称为TCP/IP。
1.3.2 TCP/IP 的分层管理
TCP/IP 协议族按层次分为一下四层:应用层,传输层,网络层,数据链路层。
分层的好处:每个层次内部的设计能自由改动。设计也变得简单。
比如应用层的应用可以只考虑分配给自己的任务,而不需要弄清楚对方在地球上那个地方、对方的传输路线是怎样的、是否能够确保传输送达的问题。这将是其他层考虑的问题。
TCP/IP 协议族各层的作用:
(这张图上分了五层)
应用层
- 应用层决定了向用户提供应用服务时通信的活动。
- TCP/IP 协议族内预存了各类通用的应用服务。比如:FTP(文件传输协议)和DNS(域名系统)服务就是其中的两类。
HTTP协议也处于该层。
传输层
- 传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。
- 在传输层有两个性质不同的协议:TCP(传输控制协议)和UDP(用户数据报协议)
网络层(网络互连层)
- 网络层用来处理网络上流动的数据包。
- 数据包是网络传输的最小数据单位。
- 该层规定了通过怎样的路径到达对方计算机,并把数据包传送给对方。
- 在计算机之间通信时,作用就是在众多的选项内选择一条传输路线。
链路层(数据链路层)
- 用来处理连接网络的硬件部分。
1.3.3 TCP/IP 通信传输流
利用TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则从链路层往上走。
可以参看:从浏览器中输入URL ,到最终看到页面内容,这个中间都经历了那些过程?
其中将数据信息包装起来的做法成为封装。
1.4 与HTTP关系密切的协议:IP、TCP和DNS
1.4.1 负责传输的IP协议
- 按照层次分,IP 网际协议位于网络层
- IP 和 IP地址要区分清楚,“IP” 在这里是一种协议名称
- IP协议的作用是把各种数据包传送给对方。而确保正确传送就需要两个条件:IP地址和MAC地址(后边会更新趣谈网络协议会讲到,IP 地址是一个网卡在网络世界的通讯地址,相当于我们现实世界的门牌号码。MAC 地址更像是身份证号,是一个唯一的标识。具体后边再说)
- IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。
使用ARP协议凭借MAC地址进行通信
- IP间的通信依赖MAC地址。
- ARP协议是一种用以解析地址的协议,根据通信双方的IP地址就可以反查出对应的MAC地址。(到这里我倒是有点迟疑了。。。后边回去在看看去谈网络协议)
没有人能够全面掌握互联网中的传输状况
在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。这种机制称为路由选择,有点像快递公司的送货过程。
1.4.2 确保可靠性的TCP协议
可参看之前的文章:
TCP协议 十大特性详解(上)
- 按层次分,TCP位于传输层,提供可靠的字节流服务。(字节流服务是指,为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。)
- 字节流服务,TCP协议就是为了更容易传送大数据才把数据分割。而且TCP协议能够确认数据最终是否送达到对方。
确保数据能够到达目标
- 三次握手
其他特性,见上边的链接。
1.5 负责域名解析的DNS服务
- DNS服务和HTTP协议一样位于应用层的协议。它提供域名到IP地址之间的解析服务。
- 计算机可以被赋予IP地址,同样可以被赋予主机名和域名。比如:www.hackr.jp
- 我们通常都是通过域名来访问的,而不是直接通过IP地址。
- 要让计算机理解,就需要将域名转换为IP地址,那么从域名到IP地址就需要DNS服务。
1.6 各种协议与HTTP协议的关系
1.7 URI和URL
- URI:统一资源标识符
- URL:统一资源定位符
1.7.1 统一资源标识符
URI(Uniform Resource Identifier)。
- Uniform 规定统一的格式可方便处理更多不同类型的资源,而不是根据上下文环境来识别资源指定的访问方式。
- Resource 资源的定义是“可标识的任意东西”
- Identifier 表示可标识的对象(标识符)。
综上所述,URI就是有某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称。
采用HTTP协议时,协议方案就是http,除此之外还有:ftp、mailto、telnet、file等。
URI用字符串标识某一互联网资源,而URL表示资源的地点。可见URL是RUI的子集。
1.7.2 URI 格式
绝对URI格式:
- 登录信息:用户名和密码
- 服务器地址:使用绝对URI必须指定带访问的服务器地址
- 服务器端口号:指定服务器连接的网络端口号
- 带层次的文件路径:定位特指资源
- 查询字符串
- 片段标识符
《参考文献》
图解HTTP
趣谈网络协议