计算机网络 应用层(HTTP)

本文详细介绍了互联网应用层的重要组件,包括DNS域名系统、HTTP协议在万维网中的作用、SMTP和POP3协议在电子邮件传输中的功能。DNS将域名解析为IP地址,HTTP实现了超文本传输,SMTP和POP3则规范了电子邮件的发送和接收。此外,还讨论了HTTP的迭代和递归查询、TCP连接在HTTP中的应用,以及代理服务器和Cookie在信息检索和用户跟踪中的角色。
摘要由CSDN通过智能技术生成

应用层

本章重点内容:

  • 域名系统DNS —— 从域名解析出IP地址。
  • 万维网和HTTP协议,以及万维网的两种不同的搜索引擎
  • 电子邮件的传送过程,SMTP协议和POP3协议
  • 动态主机配置协议DHCP的特点
  • 网络管理的三个组成部分(SNMP本身)
  • 系统调用和应用编程接口的基本概念
  • P2P文件系统

DNS域名

DNS域名系统把互联网上的主机名字转换为IP地址。

为什么机器处理IP数据报时要使用IP地址而不是域名呢?

因为IP地址的长度是固定的32位(IPv6时128位),而域名的长度不固定,所以机器处理起来会比较困难。

互联网的域名系统被设计成为一个联机分布式数据库系统,DNS使大多数名字都在本地解析,仅少量解析需要在互联网上通信

域名

images.qiniuyun.com
(3级域名)(2级域名)(顶级域名)

每一个标号不超过63个字符,也不区分大小写。完整域名总共不超过255个字符。

域名到IP地址的解析过程:

当某个应用进程需要把主机名解析为IP地址时,该应用程序会调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP的方式发给本地域名服务器(UDP减少开销)。本地域名服务器在查找域名后,把对应的IP地址放在回应报文中返回。

若本地域名服务器不能回答该请求,则该域名服务器就暂时成为DNS中的另一个客户。

域名解析过程注意点(2点)
  1. 主机向本地域名服务器的查询一般采用递归查询(recursive query),如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文。

  2. 本地域名服务器向根域名服务器的查询通常采用迭代查询(iterative query)。当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所查询的IP地址,要么告诉本地域名服务器,下一步应当向哪个域名服务器进行查询,然后让本地服务器进行后续的查询(而不是替本地域名服务器进行后续查询)。

为了提高DNS查询效率,域名服务器中广泛使用了高速缓存,如果本地域名服务器的缓存中有本次查询域名的IP地址,就会直接返回查询结果。
如果缓存中没有查询域名的IP地址,但存放顶级域名的IP地址,那么本地域名直接向顶级域名发送查询请求报文。这样可以大大减轻域名服务器的复合。

6.2 FTP

FTP的主要功能是减少或消除不同操作系统下处理文件的不兼容性。

FTP进程分为两大部分,一个主进程,负责接收新请求;另外有若干个从属进程,负责处理单个请求。

6.4 万维网

万维网是一个分布式的超媒体(hypermedia)系统,他是超文本系统的扩充。

所谓超文本指的是指向其他文档的链接的文本,也就是说,一个超文本由多个信息源连接构成。

超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档包含其他方式信息,如图形、图像、声音等。

万维网需要解决的问题

  1. 如何标志分布在整个互联网上的文档(网页)
  2. 用什么样的协议来实现万维网上的各种链接
  3. 怎么使不同作者的不同风格文档,都在互联网的各个主机上正确显示
  4. 怎么使用户方便地找到所需信息

解决方法

  1. 问题1:
  • 互联网使用统一资源定位符URL来标识互联网上的各种文档。每个文档在整个互联网的范围内具有唯一的标识符URL。
  1. 问题2:
  • 让互联网上的客户端、服务端交互严格遵守HTTP协议。HTTP协议是应用层协议,它使用TCP进行可靠的传输
  1. 问题3:
  • 互联网使用HTML使万维网网页作者方便地用链接从本页面跳转到其他页面。
  1. 问题4:
  • 使用搜索引擎可以搜索到自己想要的页面信息。

6.4.2 统一资源定位符URL

  1. URL的格式

统一资源定位富URL是用来表示从互联网上得到的资源和访问这些资源的方法。

URL一般由四个部分组成

<协议>://<主机>:<端口>/<路径>

http://119.xxx.xxx.xx:8080/public/index.html

现在的浏览器为了方便用户,在输入url时,会把http://自动补上,甚至补上主机名最前面的www

6.4.2 HTTP

万维网大致工作流程

在这里插入图片描述

每个互联网网点有一个服务器进程,不断监听TCP的端口80,以便发现是否有客户端向它发现请求。一旦监听到TCP建立请求,并建立了TCP连接,浏览器便发出http请求,服务器返回请求的内容作为响应。最后TCP连接释放。

HTTP规定在服务器和客户端的交互,都由一个ASCII码串构成的请求类MIME的响应组成。HTTP报文通常都使用TCP连接传送。

HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。不用考虑数据在传输过程中被丢弃后需要重新传输。

HTTP本身是无连接的。也就是说,通信的双方在交换HTTP报文之前不需要先建立HTTP连接。

HTTP是无状态的,也就是说同一个客户端第一次访问和第二次访问同一个服务器,服务器的响应相同,他不会记住这个客户端请求过。这么做的优点是简化了服务器的设计,使服务器更容易支持高并发的HTTP请求。

HTTP特点和TCP的特点:

HTTP: 无连接、 无状态

TCP:面向字节流、可靠传输、需要先建立连接、全双工通信

(重点)浏览器请求并且收到文档所需时间

考点1: 请求并且收到文档所需时间
考点2: 客户端发送的HTTP请求报文是在什么时候发送的,是TCP三次握手之后吗?还是什么时候?

当用户点击链接某个万维网文档时,HTTP协议首先要和服务器建立TCP连接。这需要使用三报文握手。当建立TCP连接的三报文握手的前两部分完成后(即经过一个RTT时间后),万维网客户就把HTTP请求报文作为建立TCP连接的三次握手中的第三个报文的数据,发送给万维网服务器服务器收到HTTP请求报文后,把请求的文档作为响应报文返回给客户。

HTTP/1.0 HTTP/1.1

HTTP/1.0的主要缺点,是每请求一个文档需要两倍RTT的开销。另一个开销是客户端和服务器每建立TCP连接都要分配缓存和变量。

HTTP/1.1协议较好地解决了这个问题,它使用了持续连接,服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户端和服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。

HTTP/1.1协议的持续连接有两种工作方式,非流水线流水线方式

代理服务器

代理服务器(proxy server)是一种网络实体,又称为万维网高速缓存。代理服务器把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要再次去互联网访问该资源。

使用代理服务器可以避免链路过载,时延太大的问题。

HTTP报文结构

请求报文:

在这里插入图片描述

响应报文:
在这里插入图片描述

HTTP是面向文本的,因此在报文中每个字段都是一些ASCII码串,因此各个字段的长度不确定。

请求报文和响应报文的区别在于开始行。

  1. 开始行 用于区分是哪一种报文。请求报文的开始行叫做请求行,响应报文的开始行叫做状态行。在开始行的三个字段之间都以空格分隔,最后的CR和LF分别代表回车和换行。
  2. 首部行:用来说明浏览器、服务器或报文主题的一些信息。
  3. 实体主体

请求报文的请求行只由三个内容,即方法、请求资源URL,HTTP版本,其中方法指

在这里插入图片描述

请求报文

一个完整的HTTP请求报文例子:

GET /desktop/index.html HTTP/1.1 —— 请求行
Host: www.xyz.edu.cn —— 此行是首部行的开始。这行给出主机的域名
Connection: close —— 告诉服务器发送完请求的文档就可以释放连接
User-Agent: Mozilla/5.0 —— 用户使用的浏览器
Accept-Language: cn —— 表明用户希望优先得到中文版本文档

响应报文

状态行包括3个内容,HTTP的版本,状态码,解释状态码的简单短语。

状态码都是三个数字的,分为5大类

1xx 表示通知信息,如请求收到了或者正在处理
2xx 表示成功,如接受或知道了
3xx 表示重定向
4xx 表示客户端错误
5xx 表示服务器差错

常见状态行

HTTP/1.1 202 Accepted
400 Bad Request 错误的请求
301 Moved Permanently 永久转移

若请求的网页从http://xyz.edu/index.html 转移到一个新地址,则响应报文的状态行和一个首部行就是下面的形式

httP/1.1 301 moved permanently
location: HTTP://xyz.edu/ee/index.html —— 新的URL

在服务器存放用户信息

如记住登录状态、或使用购物车

COOKIE

Cookie是这样工作的:

当用户A浏览某个使用Cookie的网站,该网站的服务器就为A产生一个唯一的识别码,并以此作为索引在服务器的后端数据库中产生一个项目。接着在给A的HTTP响应报文中添加一个叫做Set-cookie的首部行。这里的“首部字段名”就是“Set-cookie”,而后面的值就是赋予该用户的识别码

例如这个首部行

在这里插入图片描述

Set-cookie: 31d4D95E

当A收到这个响应时,**其浏览器就会在它管理的特定Cookie文件中添加一行,其中包括这个服务器的主机名和Set-cookie后面给出的识别码。**当A继续浏览这个网站,没发送一个HTTP请求报文,浏览器就会从其Cookie文件中去除这个网站的识别码,并放在请求报文的Cookie首部行中。

在这里插入图片描述

Cookie: 31d4D95E

网站能够跟踪用户 31d4D95E 在该网站的活动。服务器不需要知道这个用户的真实姓名或其他信息。但服务器能够知道用户 31d4D95E 在什么时间访问了哪些页面,以及访问这些页面的顺序。如果A在网购,那么服务器可以为A维护一个所购物品的列表,使A在结束这次购物时可以一起付款。

如果用户再次访问这个网站,那么浏览器会在HTTP请求报文中继续使用该Cookie,网站可以根据访问记录向他推荐商品。如果A在网站登记过信用卡、姓名、电话等信息,当A继续购物时,服务器可以用Cookie验证出这是用户A,A购物时就不用重新输入姓名、号码、信用卡等信息。

Cookie的使用一直饱受争议,他只是一个小小的文本文件,不能用来传播病毒,也不能用来获取用户计算机硬盘信息,但可能泄露用户隐私,用户可以在浏览器中设置不接受Cookie。

6.4.5 信息检索系统

搜索引擎

  1. 全文搜索
  2. 分类目录搜索

全文搜索引擎是检索工具,通过原理是通过搜索软件(一个叫做蜘蛛的Spider程序)到互联网各网站上收集信息,按照一定规则建立一个很大的在线索引数据库供用户查询。
建立这种索引数据库的网站必须对数据库进行定期维护。

分类目录搜索引擎不采集网站的任何信息,而是利用网站向搜索引擎提交网站信息时填写的关键词和网站描述等信息,经过人工审核后,如果认为符合网站登录条件,则输入到分类目录的数据库中。

Google的搜索引擎性能优良,因为他使用了先进的硬件和软件。它的算法是如果很多网站的链接都指向页面A,那么A就比较重要。他们的创始人使用稀疏矩阵计算的技巧,大大简化了计算了。这种算法没有任何人工干预,厂商不可能用金钱购买网页的排名。

6.5.1 电子邮件概述

电子邮件重要标准:

  1. 简单邮件传送协议SMTP(Simple Mail Transfer Protocal)
  2. 互联网文本报文格式

邮件系统三个主要组成构建:

  1. 用户代理、邮件服务器
  2. 邮件发送协议(如SMTP)
  3. 邮件读取协议(如POP3)

在这里插入图片描述

用户代理UA(user agent)是用户与电子邮件系统的接口,大多数情况他是运行在用户电脑中的一个程序。因此用户代理又称为邮件客户端软件,如gamil,qqMail。

注意点:

邮件服务器必须同时能够充当客户端和服务器。当邮件服务器A向邮件服务器B发送邮件,A就作为SMTP客户,B是SMTP服务器,反之,A作为SMTP服务器,B作为SMTP客户。

发送邮箱的过程
  1. 打开软件编写邮件
  2. 点击发送,发送邮件的工作由软件完成,这个软件充当SMTP客户端,和SMTP服务器,用户使用的邮件服务器在哪里,用户不需要知道。
  3. SMTP服务器收到邮件后,放入缓存中。
  4. 发送方SMTP客户端和服务端SMTP服务器建立TCP连接,发送邮件。
  5. 收到邮件后,放入收件人的用户邮箱中,等待读取。
base64

base64是先把二进制代码划分为一个个24位长的单元,然后把每个24位单元划分为4个6位组。每个6位组按以下方法转换为ASCII码。

6位的二进制代码共有64中不同的值,从0到63.用A表示0,B表示1等等,排完大写排小写,然后是10个数字,最后是+表示62,/表示63。

例子:

在这里插入图片描述

base64的缺点: 开销较大,上面例子中的24位二进制代码,采用base64后变成了32位。

MIME内容类型

MIME 标准规定Content-Type说明必须有两个标识符,即内容类型和子类型,中间用“/”分开。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jhYQrHBZ-1624242885848)(assets/16240062671230.jpg)]
在这里插入图片描述

6.8 应用进程网络通信

参考

链接

三次握手wireshark抓包分析,成功握手和失败握手

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值