相关术语
- URL(Uniform Resource Locator):统一资源定位符,又叫网页地址,是互联网上标准的资源的地址。
- client:客户端,通过发送请求获取服务器资源的web浏览器。
- HTTP(HyperText Transfer Protocol):超文本传输协议,互联网上应用最为广泛的一种网络传输协议,所有的WWW(World Wide Web)文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
- CGI(Common Gateway Interface):公共网关接口,是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。
- TCP/IP协议(Transmission Control Protocol/Internet Protocol):TCP/IP协议(传输控制协议/互联网协议)不是简单的一个协议,而是一组特别的协议,包括:TCP,IP,UDP,ARP等,这些被称为子协议。在这些协议中,最重要、最著名的就是TCP和IP。因此,大部分网络管理员称整个协议族为“TCP/IP”。而HTTP属于它内部的一个子集。
- MAC(Media Access Control,介质访问控制)地址:或称为MAC位址、硬件地址,用来定义网络设备的位置。
- ARP协议(Address Resolution Protocol):ARP是一种用于解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。
三项WWW构建技术:
- 把SGML(Standard Generalized Markup Language ,标准通用标记语言)作为页面的文本标记语言的HTML
- 作为文档传递协议的HTTP
- 指定文档所在地址的URL
三项技术解决了三个问题:
- 文档的表示
- 文档的传输
- 文档的定位
TCP/IP协议族按层次分别分为以下四层:
① 应用层 :决定了向用户提供应用服务时通信的活动。HTTP协议处于该层。TCP/IP协议族预存了各类通用的应用服务:FTP、DNS等。
②传输层 :传输层对上层应用层,提供处于网络连接中的俩台计算机之间的数据传输。传输层有俩个性质不同的协议:TCP和UDP。
③网络层(网络互连层) :网络层用来处理在网络上流动的数据包。该层规定了通过怎样的路线(传输路线)到达对方计算机,并把数据传送个对方。
④数据链路层:用来处理链接网络的硬件部分,包括控制操作系统、硬件的设备驱动、NIC(网络适配器)、及光纤可见部分。硬件上的范畴均在链路层的作用范围内。
为什么数据传输要分包?
因为网络是不稳定的,如果一次性传输大量的数据,传输过程中断了,就需要重新传输,不分包就可能导致多次重传。分包后即使有部分包传输失败,只需要重新传输失败的包即可。而数据包过大则会带来另外一个问题:为发送或接收某一较大数据包而长时间占用网络资源,发送与接收都容易超时,丢包后的代价也大。
网络层最为重要的功能是:路由数据包。
它会根据网络上的路由IP,网络的拥塞状况,选择最为合适的路由路线,以实现数据包最快到达目的IP。
HTTP举例:
①首先作为发送端的客户端在应用层(HTTP协议)
发出一个想看某个web页面的HTTP请求。
②接着,为了传输方便,在传输层(TCP)
把应用层处接收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
③在网络层(IP协议)
,增加作为通信目的地的MAC地址后转发给链路层
。如此,发往网络的通信请求就准备齐全了。
④接收端的服务器在链路层
接收到数据,按序往上层发送,一直到应用层。当传输到应用层
时,才算真正接收到由客户端发送过来的HTTP请求。
ps:发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息
。反之,接收端在层与层传输数据时,每经过一层时就会把对应的首部消去。这种把数据信息包装起来的做法成为封装(encapsulate)。
与HTTP关系密切的协议:IP、TCP和DNS
①负责传输的IP协议
IP网络协议位于网络层。
IP协议的作用就是将各种数据包传送给对方。而要保证确实传送到了对方那里,则需要满足各类条件。其中俩个重要条件就是:IP地址
和MAC地址
(Media Access Control Address)。
IP地址
指定了节点被分配到的地址,MAC地址
是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本不会更改。
路由选择
:在到达通信目标的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。
②确保可靠性的TCP协议
TCP位于传输层,提供可靠的字节流服务。
字节流服务
:为了方便传输,将大块数据分割成报文段(segment)为单位的数据包进行管理。
可靠的传输
:能够确认数据最终是否送达到对方。
三次握手(three-way handshaking)策略
:为了确保数据能到达目标,TCP将对传输后的数据进行确认是否送达。握手过程中使用了TCP的标志(flag):SYN(synchronize)
和ACK(acknowledgement)
。
三次握手:发送端首先发送一个带SYN标志的数据给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再传回一个带ACK标志的数据包,代表握手结束。
③负责域名解析的DNS服务
DNS(Domain Name System)
服务是和HTTP一样位于应用层的协议。他提供域名到IP地址之间的解析。
人更倾向于字母加数字记忆,而计算机更加倾向于单纯的数字记忆,因此为了解决二者间的冲突,通过使用DNS作为第三方进行转换。DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。
URI(统一资源标识符)和URL(统一资源定位符)
Uniform Resource Identifier
Uniform
:规定统一的格式可方便的处理多种不同类型的资源,而不用根据上下文环境识别资源指定的访问方式。
Resource
:资源的定义是“可标识的任何东西”。
Identifier
:标识可标识的对象。
URl就是由某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称(http、ftp、mailto、telnet、file等)。
URI用字符串标识某一互联网资源,而URL表示资源的地点。可见URL是URI的子集。
绝对的URL格式:
http://user:pass@www.example.jp:80/dir/index.html?uid=1#ch1
协议方案名(http://)/登录信息(user:pass)/服务器地址(www.example.jp)/服务器端口号(80)/带层次的文件路径(dir/index.html)/查询字符串(uid=1)/片段标识符(ch1)
ps:使用http:
或https:
等协议方案名获取资源时要指定协议类型。不区分字母大小写,最后附一个冒号。