一、了解web及网络基础
web是建立在http协议上通信的
最初设想的基本理念:借助多文档之间相互关联形成的超文本(hypertext),连成可相互参阅的www。
现已提出了3项www构建技术:分别是把SGML(generalized markup language。标准通用标记语言)作为页面文本标记语言的HTML(hypertex markup language,超文本标记语言);作为文档传递协议的http;指定文档地址的url(uniform resource locator)。
通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作HTTP的。而属于它内部的一个子集。
TCP/IP协议族里重要的一点就是分层。协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层。
TCP/IP协议族各层的作用如下:
应用层:应用层决定了向用户提供应用服务时通信的活动。
TCP/IP协议族内预存了各类通用的应用服务。比如FTP(FileTransfer Protocol,文件传输协和DNS(Domain Name System,域名系统)服务就是其中两类。HTTP协议也处于该层。
传输层:
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。
在传输层有两个性质不同的协议:TCP(Transmission ControlProtocol,传输控制协议)和
UDP(User Data Protocol,用户数据报协议)。
网络层(又名网络互连层):
网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
链路层(又名数据链路层,网络接口层):
用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。
- tcp/ip信息传输流
TCP/IP利用协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层往上走。
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。(encapsulate这种把数据信息包装起来的做法称为封装)。
- ip,tcp,dns
6.1 负责传输的ip协议
IP(Internet Protocol)按层次分,网际协议位于网络层。
IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址和MAC地址Media Access Control Addres)。
IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对IP地址可变换,但MAC地址基本上不会更改。
[图片上传失败...(image-52f76f-1540465477917)]
6.2确保可靠性的tcp协议
Tcp位于传输层,提供可靠的字节流服务。
一言以蔽之,TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。
为了准确无误地将数据送达目标处TCP协议采用了三次握手(three-way handshaking)策略。
用TCP协议把数据包送出去后不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。
6.3负责域名解析的dns服务
Dns和http一样位于应用层协议,它提供域名到ip地址之间的解析服务。
用户通常使用主机名来访问对方的计算机,而不是直接通过ip地址访问。
为了解决计算机理解名称的问题,dns服务通过域名查找ip地址或者逆向从ip地址反向查找域名。
6.4各种协议与http协议关系
- uri (Uniform Resource Identifier)和url(uniform resource locator)
Uri格式: