一、域名系统DNS
1.1域名系统概述
域名系统DNS是因特网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。相比于长达32位二进制主机地址大家愿意使用比较容易记忆的主机名字。DNS使大多数名字都在本地进行解析,仅少量解析需要在因特网上通信,因此DNS系统的效率很高。
1.2因特网的域名结构
因特网采用层次树状结构的命名方式,这种方式任何一个连接在因特网上的主机或路由器都有一个唯一的层次结构的名字,即域名。例如下面的域名
其中com是顶级域名,标号cctv是二级域名,标号mail是三级域名。
域名中的标号都是由英文字母和数字组成,每一个标号不超过63个字符也不区分大小写字母。级别最低的域名写在最左边而级别最高的顶级域名则写在最右边。由多个标号组成的完整域名总共不超过255个字符。
现在的顶级域名分为三大类:
(1)国家顶级域名,如cn表示中国,us表示美国,uk表示英国。
(2)通用顶级域名:其数目总数达到18个,如com(公司企业)、net(网络服务机构)、org(非营利性组织)
(3)基础结构域名:只有一个,即arpa,用于反向域名解析,因此又称为反向域名
我国把二级域名划分为"类别域名”和“行政区域名”两大类:
(1)类别域名共七个,分别是:ac(科研机构)、com(工、商、金融等企业)、edu(中国的教育机构),gov(中国的政府机构)
(2)行政区域名共34个,适用于我国的各省、自治区、直辖市,例如:bj(北京市)
下图展现了用域名树来表示因特网的域名系统
1.3域名的解析过程
一般分为两种方式一种是递归查询的方式一种是迭代查询的方式。他们查询的过程如下面这个过程
从图中我们可以看出递归查询的过程就是如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份向其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步查询。而迭代查询则是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询
二、HTTP
2.1HTTP的操作过程
该协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档转送给浏览器。他的大致工作流程如下:
每个万维网网点都有一个服务器进程,他不断地监听TCP的端口80,以便发现是否有浏览器向他发出连接建立请求。一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就安徽所请求的页面作为相应。最后,TCP连接就被释放了。在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则。
鼠标点击“”清华大学院系设置”连接后所发生的事情:
- 浏览器分析连接指向页面的URL
- 浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址
- 域名系统DNS解析出清华大学服务器的IP地址为166.111.4.100。
- 浏览器与服务器建立TCP连接(在服务器端IP地址是166.111.4.100,端口是80)
- 浏览器发出取文件命令:GET/chn/yxsz/index.htm
- 服务器www.tsinghua.edu.cn给出响应,把文件的index.thm发送给浏览器
- 释放TCP连接
- 浏览器显示“清华大学院系设置”文件index.thm中所有文本
2.2HTTP协议的特点
(1)无连接的
HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。HTTP不必考虑数据在传输过程中被丢弃后怎样被重传。但是,HTTP协议本身是无连接的。这就是说,虽然HTTP使用了TCP连接,但通信双方在交换HTTP报文之前不需要先建立HTTP连接。
(2)无状态的
同一个客户第二次访问同一个服务器上的页面时,服务器的相应与第一次被访问时相同。因为服务器并不记得曾经访问过这个客户,也不记得为该客户曾经服务过多少次。
(3)持续连接
万维网服务器在发送相应后忍让在一段时间内保持这条连接,使同一客户和该服务器可以继续在这条连接上传送后续的HTTP请求报文和相应报文
2.3HTTP使用时间
浏览器请求一个万维网文档到收到整个文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT(一个RTT用于连接TCP连接,另一个RTT用于请求和接收万维网文档。这里TCP建立连接的三次握手的第三个报文段中捎带了客户对万维网文档的请求)。
2.4代理服务器
他是一种网络实体,他又称为万维网高速缓存。代理服务器把最近的一些请求和相应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源。
下面这例子是分别使用; 代理服务器和不使用代理服务器的情况:
从图a我们可以看出如果不使用代理服务器校园网中所有的PC机都通过这条链路,会使这条链路过载使得时延大大增加。但是使用了代理服务器如图中的b一样,由于有相当大一部分通信量局限在校园网内部,因此,该专线链路上的通信量大大减少,因而减小了访问因特网的时延。
2.5HTTP的报文结构
HTTP有两类报文,一个是请求报文一个是响应报文,由于HTTP是面向文本的,因此报文中的每一个字段都是一些ASCII码串,因而各个字段的长度都是不确定的。
- 开始行:用于区分是请求报文段还是响应报文。在请求报文中的开始行叫做请求行,而在响应报文中的开始行叫做状态行。
1.1请求行的内容:方法、请求资源的URL以及HTTP的版本。
方法实际上也就是一些命令,下面是HTTP请求报文的一些方法
1.2HTTP响应报文的主要特点。包含了HTTP的版本,状态码以及解释状态码的简单短语
状态码都是三位数字,分为5大类共33种,例如:
一般202(接受)、400(错误的请求)、404(找不到)是我们在响应报文段中经常见到的 - 首部行:用来说明浏览器、服务器或报文主体的一些信息首部可以有好几行,但也可以不使用
- 实体主体:在请求报文中一把都不用这个字段,而在响应报文中也可能没有这个字段。