计算机网络-应用层

文章目录

  • 应用层协议原理
  • 万维网和HTTP协议
    • 万维网概述
      • 统一资源定位符
      • HTML文档
    • 超文本传输协议(`HTTP`)
    • HTTP报文格式
      • 请求报文
      • 响应报文
      • cookie
    • 万维网缓存与代理服务器
  • DNS系统
    • 域名空间
    • 域名服务器和资源记录
    • 域名解析过程
      • 递归查询
      • 迭代查询
  • 动态主机配置协议(DHCP)
    • DHCP中继代理
    • DHCP交互过程
  • 电子邮件
    • 电子邮件系统的组成
      • 简单邮件传送协议
      • 邮局协议POP3
      • 互联网报文存取协议
    • 电子邮件格式和MIME

应用层协议原理

万维网和HTTP协议

万维网概述

万维网简称Web是一个大规模的、联机式的信息存储空间,是运行在互联网上的一个超大规模的分布式应用
万维网应用通过统一资源定位符URL来指明因特网上任何种类资源的位置,通过超文本标记语言html描述信息资源、通过超文本传输协议http传递信息资源

统一资源定位符

url的组成
< 协议 > : / / < 主机 > : < 端口 > / < 路径 > {<协议>://<主机>:<端口>/<路径>} <协议>://<主机>:<端口>/<路径>
比如湖南科技大学的官网:
image

  • < 协议 > : / / {<协议>://} <协议>:// :他指出访问该资源所使用的协议,或称为服务方式,最常用的协议就是HTTPHTTPS
  • < 主机 > : < 端口 > {<主机>:<端口>} <主机>:<端口> :他指出保存该资源的主机和处理该URL的服务器进程。其中 < 主机 > {<主机>} <主机>是指保存该资源的主机的域名或者IP地址, < 端口 > <端口> <端口>指明处理该url的进程,如果服务器上采用的端口是已经在IANA注册过的熟知端口,则 : < 端口 > {:<端口>} :<端口>可以省略,HTTP在IANA注册的熟知端口是80端口,当Web采用80端口时,就可以省略 : < 端口 > {:<端口>} :<端口>
  • / < 路径 > {/<路径>} /<路径> :指出资源在该主机中的具体位置,如目录和文件名,/代表根目录,根目录时一个逻辑目录,它可以映射到主机上的某个物理目录,映射关系由服务器程序指定

eg:例如,郑州大学主页的URL为"http://www/zzu.edu.cn",省略了HTTP的熟知80端口, 也省略了 / < 路径 > {/<路径>} /<路径>部分,它代表使用HTTP访问主机 w w w . z z u . e d u . c n {www.zzu.edu.cn} www.zzu.edu.cn 上的根目录下的默认资源,于目的主机的80端口绑定的服务器进程负责处理该URL指定的资源的访问。

HTML文档

万维网引入了超文本标记语言(HTML)作为万维网页面的标准语言

  • HTML是一种标记语言,或者说是一种描述如何格式化文档的语言,使用标记标签来描述网页文档,HTML标记标签简称为HTML标签

  • HTML标签是由一对 < > {<>} <>包含的关键词,通常成对出现,第一个标签是开始标签,第二个标签是结束标签,从开始标签到结束标签之间的所有代码称为HTML元素
    image

  • HTML定义了几十种不同的元素,用来定义不同的对象,如 < i m g > {<img>} <img>来定义图像, < p > {<p>} <p>来定义段落, < a > {<a>} <a>定义超链接

  • HTML的目标是指定文档的结构而不是文档外观,文档外观指定使用CSS,javascript是一种脚本语言用来控制网页的行为

  • 静态HTML文档:静态HTML文档在创作完毕后就存放在万维网服务器中,它的内容不会根据浏览器发来的数据而改变

  • 动态HTML文档:动态HTML文档在浏览器访问服务器时才创建,当浏览器的请求到达时,服务器会将URL映射到一个应用程序,由应用程序根据请求中的数据创建一个HTML文档,根据请求不一样,得到的文档也不一样

  • 活动HTML文档:活动文档HTML是把创建文档的工作移动到浏览器里进行,服务器发回给浏览器的文档中包含脚本程序,浏览器执行脚本后,得到完整的HTML文档,一旦文档建立后,她所包含的内容荣也就被固定下来了

超文本传输协议(HTTP

HTTP由两个一个客户程序(浏览器程序)和一个服务器程序(通常是万维网服务器),浏览器和万维网服务器一般运行在不同的端系统中,通过HTTP报文进行会话。
HTTP大致的工作过程如下:
image
hhtp/1.0:仅支持非持续连接
http/1.1:既支持非持续连接也支持持续连接

  • 非持续连接方式
    image
    非持续连接方式下每获取一个文件就要有两倍的RTT的时间开销
  • 持续连接方式
    不用每次传输都建立TCP连接,只需要在最开始的一次传输中建立TCP连接即可
    持续连接方式中还可以采用两种不同的方式,一种是流水线方式,一种是非流水线方式
    流水线方式就是我们在未收到HTTP相应报文是也可以发送新的HTTP请求报文
    非流水线方式是只有在接收到上一次HTTP响应报文后才能发送新的HTTP请求报文

HTTP报文格式

http报文分为两类一类是请求报文,一类是响应报文, http是面向文本的,因此报文中的每一个字段都是一些ASCLL码串。
请求报文和响应报文均由三部分组成

  1. 开始行:在请求报文中开始行叫请求行,在响应报文中开始行叫状态行
  2. 首部行:用来说明浏览器、服务器、或报文主体的一些信息。首部行可以包含多行,也可以不使用。每一行都有首部字段名和它的值
  3. 实体主体:在请求报文中叫请求主体,在响应报文中叫响应主体

请求报文

image
image
http的几种方法:
GET用于获取URL指定的资源
POST用于提交信息或数据
HEAD用于请求读取URL所指定的资源的首部
PUT向指定URL上传内容
DELETE请求服务器删除指定URL的资源
TRACE回显服务器收到的请求,用于测试或诊断
CONNECT用于代理服务器
OPTION请求服务器告知选项功能

响应报文

image
image

cookie

http是无状态协议,每次请求之间是相互独立的,cookie可以弥补http协议无状态的不足
cookie包含四个组件:

  1. http响应报文中的Set-cookie首部行
  2. http请求报文中的cookie首部行
  3. 在用户系统中保存的cookie,cookie可以保存在磁盘上由浏览器管理
  4. 位于万维网服务器的后端数据库
    image
    image

万维网缓存与代理服务器

DNS系统

域名空间

image
顶级域名

  1. 国家顶级域名:cnusuk
  2. 通用顶级域名:com(公司企业)net(网络服务机构)org(非营利组织)int(国际组织)edu(美国的专用教育机构)gov(美国的政府部门)mil(美国的军事部门)
  3. 基础结构域名/反向域名:arpa(只有这一个)用于反向域名解析

二级域名:(我国)

  1. 类别域名ac(科研机构)com(工商金融等企业)edu(中国的教育机构)gov(中国的政府机构)net(提供互联网络服务的机构)org(非营利性的组织)mil(中国的国防机构)
  2. 行政区域名:用于各省、自治区、直辖市例如bj、js

根是顶级域名后面的一个.

域名服务器和资源记录

域名服务器:

  1. 根域名服务器:最高层的域名服务器也是最重要的域名服务器,所有根域名服务器知道所有顶级域名服务器的域名和IP地址。互联网上面目前有13个根域名服务器使用13个不同的IP地址的域名a.rootservers.net~m.rootservers.net
    根域名服务器并不会直接把待查询的域名直接转换成IP地址(根域名服务器中也没有保存这些信息),而是告诉DNS解析器下一步应该找哪一个顶级域名服务器进行查询
  2. 顶级域名服务器:负责管理在该顶级域注册的所有二级域名,当收到DNS查询请求时他的回答可能是最终的IP地址,也可能是下一步应当找的域名服务器的IP地址
  3. 权限域名服务器:负责管理某个区的域名服务器,保存了该区域中的所有主机的域名到IP地址的映射
  4. 本地域名服务器:直接为用户提供域名解析服务的域名服务器。当一台主机发出DNS查询请求时,这个查询请求报文被发送给本地域名服务器。每个互联网服务提供方都可以拥有一个本地域名服务器,这种域名服务器有时也称默认域名服务器

image

域名解析过程

image

递归查询

image
如果DNS客户所询问的域名服务器不知道被查询域名的IP地址,那么该域名服务器就将代替DNS客户,继续向其他域名服务器发出查询请求报文,直至得到结果

通常主机向本地域名服务器发起的查询是递归查询

迭代查询

image
当域名服务器收到迭代查询的请求报文时,要么给出所要查询的主机的IP地址,要么告诉DNS客户下一步应当向哪一个域名服务器进行查询,而不会代替DNS客户进行下一步查询

本地域名服务器向其他域名服务器发出的查询是迭代查询

高速缓存

  1. 高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录,
  2. 为了保证高速缓存中的内容正确,域名服务器为每项内容设置计时器并删除超过合理时间的项,
  3. 本地DNS服务器不仅缓存最终查询结果,也能缓存顶级域名服务器的IP地址,因而本地DNS服务器可以绕过根域名服务器

动态主机配置协议(DHCP)

  • 互联网上广泛使用动态主机配置DHCP来自动配置网络参数,配置信息一般包括IP地址子网掩码默认路由器的IP地址和本地域名服务器的IP地址
  • DHCP服务分配给DHCP用户的IP地址等网络参数是临时的,只能在一段时间内使用,这段时间称为租用期
  • DHCP客户使用UDP68端口,DHCP服务器使用UPDP67端口

DHCP中继代理

为什么需要DHCP中继代理
DHCP客户启动时,需要利用广播报文寻找DHCP服务器,该报文称为DHCP发送报文,DHCP发送报文采用本地网络广播地址作为目的的IP地址,该报文不能被路由器转发,因此DHCP只能发现本网络上的DHCP服务器,这就要求在每个网络上都配置一台DHCP服务器,为了简化配置,避免DHCP服务器过多,我们采用DHCP中继代理解决这个问题

DHCP交互过程

image

  1. DHCP客户从UDP端口68以广播方式发送DHCP Discover报文,目的IP:255.255.255.255,源IP地址:0.0.0.0
  2. DHCP服务器广播发送DHCP Offer报文给予相应
  3. DHCP客户从收到的Offer报文中选择一个服务器,向所选择的DHCP服务器广播发送DHCP Request报文
  4. DHCP服务器收到Request报文后,向DHCP客户广播发送DHCP ACK报文

收到DHCP ACK报文时,DHCP客户真正获得、并能够分配IP地址

  1. 将租期记为T,当到达0.5T时,DHCP客户单播发送DHCP Request报文请求续租,如果没有DHCP ACK报文,则在0.875T时,会再次单播发送DHCP Request报文请求续租
  2. DHCP服务器收到单播DHCP Request报文,向DHCP客户单播发送DHCP ACK报文或DHCP NAK报文

如果DHCP客户收到DHCP ACK报文,则更新租用期,重新设置计时器
如果DHCP客户收到DHCP NAK报文则停止使用原来的IP地址,发送DHCP Discover报文重新请求
DHCP客户可以随时发送DHCP Release报文,释放IP地址

电子邮件

电子邮件系统的组成

image

  • 用户代理:发送发用户代理、接收方用户代理,用户与电子邮件系统的接口,通常情况下是主机中运行的程序
  • 邮件服务器:发送方邮件服务器、接收方邮件服务器,主要功能是发送和接收邮件,以及向发信人报告邮件传送的情况
  • 协议SMTP(发)POP3(收)IMAP(收)
    image

简单邮件传送协议

  1. SMTP规定了在两个相互通信的SMTP进程之间如何交换信息
  2. SMTP客户使用25端口与SMTP服务器建立TCP连接
  3. SMTP使用客户-服务器工作方式
  4. SMTP规定了14条命令、21种应答信息每条命令用几个字母组成,而每一种应答信息一般只有一行信息,由一个3位数字的代码开始,后面附上(也可不附上)很简单的文字说明

SMTP协议的缺点,不能传送可执行文件或其他二进制对象
仅限于传送7位ASCLL码,不能传送其他非英语国家的文字,SMTP服务器会拒绝超过一定长度的电子邮件

邮局协议POP3

特点C/S、TCP连接、端口号110
pop3工作方式

  1. 下载并保留(在服务器)
  2. 下载并删除

互联网报文存取协议

  • 特点:C/S、端口号143
  • 发出删命令之前IMAP服务器中的邮件一直保存这
  • IMAP允许用户只读取邮件中某些部分,如只读取一个邮件的首部
  • IMAP为用户提供了创建文件夹以及将邮件从一个文件夹移动到另一个文件夹的命令

电子邮件格式和MIME

一封邮件由一个基本的信封数个首部字段一个空行邮件主体组成。首部的每个字段由一行ASCLL文本组成
常见的电子邮件首部及其含义如下:
image

  • MIME在原有的邮件格式基础上,增加了邮件主体的结构,并定义了传送非ASCII码的编码规则。
  • MIME定义了五种新的邮件首部
  • MIME规定了非ASCII码文件的编码方式
  • MIME定义了多种邮件主体的类型和子类型
    image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/179664.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

硬件工程师到底可以从哪些方面提升自己?

大家好,这里是大话硬件。 最近在大话硬件群里,聊得比较多的就是讨论怎么提升自己的能力,怎么拿到更高的工资。我想,这可能并不是只在大话硬件群才有的话题,其实在每一位工作的人心里应该都在想的两个问题。 因此,这篇文章简单分享一下,作为一名硬件工程师,可以在做哪…

1220*2440mm建筑模板木工板:桥梁工程中的覆膜板选择

在桥梁工程中&#xff0c;选择合适的建筑模板木工板至关重要。其中&#xff0c;1220*2440mm规格的建筑模板木工板作为一种常见的选择&#xff0c;特别适用于混凝土工程和桥梁建设。本文将重点介绍这种规格的木工板作为覆膜板在桥梁工程中的应用。 1220*2440mm建筑模板木工板是一…

基于 golang 从零到一实现时间轮算法 (一)

前言 时间轮是用来解决海量百万级定时器&#xff08;或延时&#xff09;任务的最佳方案&#xff0c;linux 的内核定时器就是采用该数据结构实现。 应用场景 自动删除缓存中过期的 Key&#xff1a;缓存中设置了 TTL 的 kv&#xff0c;通过把该 key 对应的 TTL 以及回调方法注册…

第六讲:VBA与ACCESS的ADO连接中,所涉及的对象

《VBA数据库解决方案》教程&#xff08;10090845&#xff09;是我推出的第二套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;是学完字典后的另一个专题讲解。数据库是数据处理的利器&#xff0c;教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实…

vue 获取上一周和获取下一周的日期时间

效果图&#xff1a; 代码&#xff1a; <template><div><div style"padding: 20px 0;"><div style"margin-left: 10px; border-left: 5px solid #0079fe; font-size: 22px; font-weight: 600; padding-left: 10px">工作计划</…

uni-app离线打包在android studio创建的.jks证书,签名文件获取MD5问题

获取证书信息 keytool -list -v -keystore test.keystore 获取的信息中没有md5信息 可以使用以下方式获取md5. 先创建签名文件&#xff0c;放到项目目录下 配置build.gradle文件 在android studio 打开终端输入以下命令 ./gradlew signingReport 等待生成签名。 生成的内容…

uniapp subNvue 写的视频播放

文件下载地址 https://download.csdn.net/download/weixin_47517731/88500016https://download.csdn.net/download/weixin_47517731/88500016 1:在pages.json中配置视频播放页面 {/* 视频详情页面 */"path": "pages/detail-video/detail","style&q…

Android ConstraintLayout分组堆叠圆角ShapeableImageView

Android ConstraintLayout分组堆叠圆角ShapeableImageView <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"…

【凡人修仙传】定档曝光,最新更新时间有所调整,期待值暴涨

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析国漫资讯。 深度爆料&#xff0c;备受瞩目的动漫作品《凡人修仙传》终于在新年之际宣布定档了&#xff01;这个消息让广大动漫爱好者们激动不已。在某知名视频网站上&#xff0c;这部作品的官方发布了一个名为“新年番定…

Shell变量

Shell变量 本地变量变量定义取出变量值 特殊参数变量⾯试题分享 特殊状态变量脚本控制返回值获取上⼀次后台进程的PID再来分享一道面试题&#xff1a; 获取当前脚本的PID获取上次命令的最后一个参数 本地变量 定义Shell变量&#xff0c;变量名不需要加美元符 $ 本地变量只在⽤…

JS异常处理——throw和try、catch以及debugger

让我为大家介绍一下异常处理吧&#xff01; 异常处理是指预估代码执行过程中可能发生的错误&#xff0c;然后最大程度的避免错误的发生导致整个程序无法继续运行 throw 抛异常 第一种写法 function fun(x, y) {// undefined是false 但取反就是trueif (!x || !y) {// 第一种写…

【ChatGPT瀑布到水母】AI 在驱动软件研发的革新与实践

这里写目录标题 前言内容简介作者简介专家推荐读者对象目录直播预告 前言 计算机技术的发展和互联网的普及&#xff0c;使信息处理和传输变得更加高效&#xff0c;极大地改变了金融、商业、教育、娱乐等领域的运作方式。数据分析、人工智能和云计算等新兴技术&#xff0c;也在不…

VM虚拟机逆向 --- [NCTF 2018]wcyvm 复现

文章目录 前言题目分析 前言 第四题了&#xff0c;搞定&#xff0c;算是独立完成比较多的一题&#xff0c;虽然在还原汇编的时候还是很多问题。 题目分析 代码很简单&#xff0c;就是指令很多。 opcode在unk_6021C0处&#xff0c;解密的数据在dword_6020A0处 opcode [0x08, …

众佰诚:新手如何在抖音电商中脱颖而出

在这个信息爆炸的时代&#xff0c;短视频平台抖音已经成为了人们获取信息、娱乐和购物的重要渠道。越来越多的商家开始在抖音上开设店铺&#xff0c;希望通过这个平台实现销售增长。然而&#xff0c;对于新手来说&#xff0c;如何在众多的竞争对手中脱颖而出&#xff0c;成为了…

人工智能与卫星:颠覆性技术融合开启太空新时代

人工智能与卫星&#xff1a;颠覆性技术融合开启太空新时代 摘要&#xff1a;本文将探讨人工智能与卫星技术的融合&#xff0c;并介绍其应用、发展和挑战。通过深入了解这一领域的前沿动态&#xff0c;我们将展望一个由智能卫星驱动的未来太空时代。 一、引言 近年来&#xf…

时序预测 | Python实现ARIMA-CNN-LSTM差分自回归移动平均模型结合卷积长短期记忆神经网络时间序列预测

时序预测 | Python实现ARIMA-CNN-LSTM差分自回归移动平均模型结合卷积长短期记忆神经网络时间序列预测 目录 时序预测 | Python实现ARIMA-CNN-LSTM差分自回归移动平均模型结合卷积长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 …

汽车标定技术(一):XCP概述

目录 1.汽车标定概述 2.XCP协议由来及版本介绍 3.XCP技术通览 3.1 XCP上下机通信模型 3.2 XCP指令集 3.2.1 XCP帧结构定义 3.2.2 标准指令集 3.2.3 标定指令集 3.2.4 页切换指令集 3.2.5 数据采集指令集 3.2.6 刷写指令集 3.3 ECU描述文件(A2L)概述 3.3.1 标定上位…

无声的世界,精神科用药并结合临床的一些分析及笔记(十)

目录 回 “ 家 ” 克服恐惧 奥沙西泮 除夕 酒与药 警告 离别 回 “ 家 ” 她的锥切手术进行的很顺利&#xff0c;按计划继续返回安定医院调节心理状态&#xff0c;病友们都盼着我们回“家”。当我俩跨入病区&#xff0c;大家都涌过来帮我们大包小包的拎着行李&#xff0…

【实战Flask API项目指南】之七 用JWT进行用户认证与授权

实战Flask API项目指南之 用JWT进行用户认证与授权 本系列文章将带你深入探索实战Flask API项目指南&#xff0c;通过跟随小菜的学习之旅&#xff0c;你将逐步掌握 Flask 在实际项目中的应用。让我们一起踏上这个精彩的学习之旅吧&#xff01; 前言 当小菜踏入Flask后端开发…

[云原生1. ] 使用Docker-compose一键部署Wordpress平台

文章目录 1. Docker-compose概述1.1 简介1.2 docker-compose 的三大概念1.3 docker-compose配置模板文件常用的字段1.4 docker-compose 常用命令及格式 2. YAML 文件的详细介绍及编写注意事项2.1 简介2.2 yaml的特性2.2.1 语法特点2.2.2 数据结构2.2.3 引号的区别2.2.4 内置类型…