计算机网络-应用层

应用层

应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。

应用:Web、文件传输FTP、远程登录、电子邮件


域名、统一资源定位符URL

域名:由一串用“.”分隔的名字组成的Internet上某一台计算机或计算机组的名称。www.123.com(级别自左向右由低到高,com:最高的是顶级域名)(三级域名.二级域名.顶级域名)

URL:描述一个资源在万维网上的地址唯一标识每一个资源,不区分大小写。


<协议>://<域名 or IP地址>:<端口>/<路径>/文件名[参数=值]

http://www.microsoft.com/china/index.htm。它的含义如下:

  1. http://:代表超文本传输协议,通知microsoft.com服务器显示Web页,通常不用输入;
  2. www:代表一个Web(万维网)服务器;万维网,是基于客户机/服务器方式的信息发现技术和超文本技术的综合。WWW服务器通过超文本标记语言(HTML)把信息组织成为图文并茂的超文本,利用链接从一个站点跳到另个站点。
  3. Microsoft.com/:这是装有网页的服务器的域名,或站点服务器的名称;
  4. China/:为该服务器上的子目录,就好像我们的文件夹;
  5. Index.htm:index.htm是文件夹中的一个HTML文件(网页)。

http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

从上面的URL可以看出,一个完整的URL包括以下几部分:
1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符

2.域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用

3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口

4.虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”

5.文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

6.锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。


对比URI:

URI统一资源标识符,URI的作用像身份证号一样,URL的作用像家庭住址一样。URI就是在某一规则下能把一个资源独一无二地标识出来。

​ URL 还定义了如何能访问到该资源,标识一个互联网资源,并指定对其进行操作或获取该资源的方法。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。简单地说,只要能唯一标识资源的就是 URI,在 URI 的基础上给出其资源的访问方式的就是 URL

​ URL是以描述位置来唯一确定的。不论是用定位的方式还是用编号的方式,我们都可以唯一确定一个人,都是URl的一种实现,而URL就是用定位的方式实现的URI。URL 是 URI 的子集


DNS:域名解析系统

主机与另一台主机进行远程之间的通信是通过IP地址(全球唯一标识,网络层)找到网站

DNS服务器:域名->IP地址

​ 主机先把域名传给DNS服务器,DNS服务器把解析后的IP地址传给主机,然后主机再根据IP地址发送


例如 www . server . com(三级域名.二级域名.顶级域名)

  • 浏览器首先看一下自己的缓存里有没有,没有的话就向操作系统的缓存要,还没有就检查本地域名解析文件hosts,如果还是没有,就会向 DNS 服务器进行查询。
  • 当一个主机发出DNS查询请求时,请求报文会首先被发给本地域名服务器
  • 本地没有的话,就向根域名服务器查询。根域名服务器知道所有顶级域名服务器及其IP地址。根域名服务器会看顶级域名是什么,然后会把对应顶级域名服务器的IP地址告诉本地域名服务器或者直接往下进行更详细的查询(递归查询、迭代查询)。这里也就是查到 .com 的顶级域名服务器的地址
  • 顶级域名服务器查询,就会查到 server . com 区域权威域名服务器的地址。顶级域名服务器知道不同二级域名对应的IP地址
  • 权威域名服务器是域名解析结果的原出处,就可以查到相应域名对应的IP地址。
  • 本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

​ 有递归查询、迭代查询(迭代也是跟本地域名服务器迭代,最终结果由本地域名服务器返回给主机)


DNS 既使用 TCP 又使用 UDP:

​ 当进行区域传送(主域名服务器向辅助域名服务器传送变化的那部分数据)时会使用 TCP,因为数据同步传送的数据量比一个请求和应答的数据量要多,而 TCP 允许的报文长度更长,因此为了保证数据的正确性,会使用基于可靠连接的 TCP。

​ 当客户端向 DNS 服务器查询域名 ( 域名解析) 的时候,一般返回的内容不会超过 UDP 报文的最大长度,即 512 字节。用 UDP 传输时,不需要经过 TCP 三次握手的过程,从而大大提高了响应速度,但这要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性


域名劫持:

​ 通过将原域名对应的 IP 地址进行替换从而使得用户访问到错误的网站或者使得用户无法正常访问网站的一种攻击方式。域名劫持往往只能在特定的网络范围内进行,范围外的 DNS 服务器能够返回正常的 IP 地址。

预防:

​ 直接通过 IP 地址访问网站,避开 DNS 劫持。

​ 由于域名劫持往往只能在特定的网络范围内进行,因此一些高级用户可以通过网络设置让 DNS 指向正常的域名服务器以实现对目的网址的正常访问,例如将计算机首选 DNS 服务器的地址固定为 8.8.8.8。



FTP:文件传输协议

基于C/S的协议,提供不同种类主机系统之间的文件传输能力

使用TCP实现可靠传输

服务器进程(一个进程可以给多个用户提供服务)

一个主进程和 n 个从属进程

主进程打开端口,可以连接到客户进程,然后启动从属进程,来处理单个的客户请求

从属进程里有控制进程(控制连接,传请求,全程打开)和数据传送进程(数据连接,传文件,传完就关)

要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。



HTTP:超文本传输协议

​ 定义了浏览器(万维网客户进程)怎样向万维网服务器请求文档,以及服务器怎样把文档传送给浏览器(本身不算一种连接,相当于是形式的规定)

使用TCP作为支撑运输协议。一旦建立好TCP连接,就可以通过套接字接口访问TCP。(套接字:IP:端口号,应用层与传输层之间的接口)(上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值