计网笔记4-应用层

4 应用层

HTTP,FTP,DNS

HTTP=tcp+80

4.1 域名系统DNS

DNS服务作用:负责解析域名,将域名解析成IP

域名解析的过程:一个DNS服务器解析所有域名明显是不科学的,所以实际上,域名解析由其顶级域名,二级三级域名依次往下分发任务。
在这里插入图片描述
主机访问网站时解析域名的过程(www.baidu.com

  • 找缓存
  • 找本机的hosts文件
  • 根据设置的DNS服务器(可设置多个,选择一个就行),访问本地域名服务器,并提交自己的域名给DNS服务器,
  • 服务器首先检查这个域名本地的缓存中是否有
    • 若是缓存中有,直接找到ip地址返回
    • 否则,就寻找一个根域名服务器的地址,并对其发起请求
  • 根域名服务器发现是.com下的顶级域名,于是给你返回负责这个域的服务器
  • 然后又向这个服务器发送请求,此服务器依照提交的域名依次往下(他的子节点中)找对应二级域名负责的服务器,每次返回对应子节点的地址,本地再如此一直访问返回的地址,直到找到负责此域名的节点,返回对应域名的地址后,本地进行缓冲,并成功访问

4.2 动态主机配置协议DHCP

  • 静态IP地址:如机房里面固定的主机,可静态分配IP地址,方便管理。
  • 动态IP地址:到处移动的笔记本就不适合静态分配IP地址,这时候要动态分配IP地址,而动态分配就需要使用DHCP协议。

本网段熙DHCP客户端请求IP地址的过程:
DHCP客户端:设置自动获得IP地址的主机

  • DHCP客户端并不知道当前网段下的DHCP服务器在哪,于是通过发送广播的方式来获得IP地址
  • 网段内的DHCP服务器可能有多个,每个收到广播请求的DHCP服务器都会从自己的IP地址池里面拿出一个IP地址给发送请求的DHCP客户端
  • DHCP客户端可能收到多个DHCP服务器发回来的IP地址,但DHCP客户端只使用一个(发包给DHCP服务器确认),其他的退回给相应的DHCP服务器(没收到确认消息的),这些DHCP服务器又把IP地址放回自己的IP地址池中。收到确认消息的DHCP这个时候再把IP地址,子网掩码,网关等发给DHCP客户端。

跨网段地址分配
没有必要每个网段下都设置一个DHCP服务器(浪费),一般是多个网段下设置一个,所以需要能够进行跨网段分配地址。

  • DHCP服务器需要创建多个作用域(管理多少个网段就创建多少个作用域)
  • 主机请求分配IP地址
    • 需要进行跨网段分配地址的网段,需要在默认路由器处配置对应DHCP服务器的位置,当这个路由器收到某个主机的广播要求动态分配IP地址的时候,就转发这条消息给其配置的DHCP服务器。
    • DHCP本网段下的主机直接广播就能被DHCP服务器收到
  • DHCP服务器收到请求分配IP地址的请求
    • DHCP服务器收到某个路由器发送请求,要求分配IP地址,查询这个路由器的网段,然后在自己对应这个网段的作用域上分配一个IP地址给发送消息的路由器,路由器再转发给本网段下发送广播的主机。
    • DHCP服务器如果收到的是广播消息,就知道是本网段下的主机发起的IP地址分配请求,在本网段对应的作用域下寻找一个IP地址分配给主机即可。

4.3 文件传输协议FTP(File Transfer Protocol)

使用TCP协议连接FTP客户端与FTP服务器端
21端口:控制连接,发送FTP命令信息(连接命令等)
20端口:数据连接,用于上传,下载数据

建立连接有主动服务和被动服务器

  • 主动服务:
    • FTP客户端主动请求FTP服务器端发送数据(FTP请求发到21端口),并告诉服务器自己使用的什么端口侦听
    • FTP服务器端以20为源端口,主动向FTP客户端发送数据(以客户端的告诉自己的端口为目的端口)
  • 被动服务
    • FTP客户端请求与FTP服务器端建立连接,发送到服务器的21端口
    • FTP服务器端自己新开一个端口为源端口X,并告诉客户端自己开了端口X,等待客户端与自己建立连接

FTP服务器端如果有防火墙,需要在防火墙上开21和20端口,使用主动模式进行数据连接(如果使用被动,需要再防火墙上开很多洞)

4.4 远程终端协议TELNET

远程调试网络设备,默认使用23端口。

远程连接后,可知远程终端执行命令,或测试远程端口是否打开了

4.5 远程桌面协议RDP

远程连接到服务器进行管理,类似telnet,但这是可以使用工具,进行图形化界面进行管理的。

使用3389端口。

4.6 超文本传输协议HTTP(Hyper Text Transfer Protocol)

超文本:指向其他文档的链接的文本

万维网WWW(World Wide Web):提供分布式的服务,使得通过一个网站能够链接到其他IP下的网站,每个网站都带有其他网站的链接,根据用户的需要进行跳转。

http://www.baidu.com 就表示使用HTTP协议来访问

HTTP协议用来访问网站,一个服务器下可能有多个网站,不同的网站通过使用不同的端口,不同IP,不同的主机头区分。HTTP是面向事务的,保证了万维网可以可靠的交换文件(文件,声音,图像等各种多媒体文件),每个网点下都有一个服务器进程,它不断的监听TCP的端口80,以便发现有用户发起建立连接请求,TCP连接建立后,返回用户请求的页面作为响,再到最后释放TCP。而用户与服务器之间的请求余响应的交互就需要遵守一定的规则,这个规则与格式就是超文本传输协议HTTP。

注:http不仅能传送超文本跳转所必需的信息,也传送任何可从互联网上得到的信息(文本,超文本,声音,图像等)

HTTP报文格式

请求报文:
在这里插入图片描述

开始行叫请求行

  • 方法:是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的操作,因此这些方法实际上也就是一些命令。因此,请求报文的类型是由它所采用的方法决定的。
  • URL:是所请求的资源的 URL。
  • 版本:是 HTTP 的版本。

首部行:记录浏览器,服务器或报文主体的一些信息
实体主体:一般不用这个字段

响应报文:
在这里插入图片描述
开始行是状态行,状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。

  • http状态码
    • 1xx 表示通知信息的,如请求收到了或正在进行处理。
    • 2xx 表示成功,如接受或知道了。
    • 3xx 表示重定向,表示要完成请求还必须采取进一步的行动。
    • 4xx 表示客户的差错,如请求中有错误的语法或不能完成。
    • 5xx 表示服务器的差错,如服务器失效无法完成请求。

Http是无状态的

也就是说,当客户端一次HTTP请求完成以后,客户端再发送一次HTTP请求,HTTP并不知道当前客户端是一个”老用户“。
可以使用Cookie来解决无状态的问题,Cookie就相当于一个通行证,第一次访问的时候给客户端发送一个Cookie,当客户端再次来的时候,拿着Cookie(通行证),那么服务器就知道这个是”老用户“。

Http与Https的区别:
HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头
HTTP 是不安全的,而 HTTPS 是安全的
HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
在OSI 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层
HTTP 无法加密,而HTTPS 对传输的数据进行加密
HTTP无需证书,而HTTPS 需要CA机构wosign的颁发的SSL证书

URI和URL的区别
URI:统一资源标识符,用来唯一的标识一个资源。URI包含了URL(www.baidu.com
URL:统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。(http://www.baidu.com , ftp://www.baidu.com

HTTP1.0和HTTP1.1的一些区别
HTTP1.0最早在网页中使用是在1996年,那个时候只是使用一些较为简单的网页上和网络请求上,而HTTP1.1则在1999年才开始广泛应用于现在的各大浏览器网络请求中,同时HTTP1.1也是当前使用最为广泛的HTTP协议。 主要区别主要体现在:

  • 缓存处理,在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。

  • 带宽优化及网络连接的使用,HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。

  • 错误通知的管理,在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。

  • Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。

  • 长连接,HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。(HTTP1.0中每次发送请求,都会通过使用TCP三次握手建立连接,并在第三次握手时发送请求,然后服务器端返回客户端需要的信息后就立即关闭了连接,这样每次请求都需要花费两个TTL的时间,且每次访问都需要建立新的连接并分配资源,造成了时间和服务器端资源的浪费)

用户点击 URL http://www.tsinghua.edu.cn/chn/yxsz/index.htm后所发生的事件
(1) 浏览器分析超链指向页面的 URL。
(2) 浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址。
(3) 域名系统 DNS 解析出清华大学服务器的 IP 地址。
(4) 浏览器与服务器建立 TCP 连接。
(5) 浏览器发出取文件命令:GET /chn/yxsz/index.htm。
(6) 服务器给出响应,把文件 index.htm 发给浏览器。
(7) TCP 连接释放。
(8) 浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值