计算机网络-理论部分(二):应用层

网络应用体系结构

  • Client-Server客户-服务器体系结构:如Web,FTP,Telnet等
  • Peer-Peer:点对点P2P结构,如BitTorrent

应用层协议定义了:

  • 交换的报文类型,请求or响应
  • 报文类型的语法
  • 字段的含义
  • 如何发报文,以及响应规则

常见的应用类型有:Web,电子邮件,目录服务,流式视频、P2P
其中目录服务就是DNS解析,将网址转换为IP地址。

Web服务

Web采用的应用协议有

  • HTTP(HyperText Transfer Protocol,超文本传输协议)
  • HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议)。

HTTP以明文方式发送内容且没有提供任何形式的数据加密功能,在涉及敏感信息(如信用卡号、密码等支付相关内容)时存在安全隐患。HTTPS在HTTP基础上引入了SSL(Secure Sockets Layer)协议,并通过证书验证服务器身份以确保通信过程中数据得到合理保护和加密处理。

HTTP协议不保存任何Client相关信息,是无状态协议。如果要确认验证信息,可以加入Cookie来解决

发展

初始版本1.0,是非持续连接,每次请求都要建立连接,TCP连接建立和释放影响性能,所以改进提出了HTTP1.1,也是目前主流的HTTP协议。

非持续连接:每个请求/响应都是经单独的TCP发送
持续连接:每个请求/响应都是经过同一个TCP连接发送
持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。如果某个 HTTP 长连接超过一定时间没有任何数据交互,服务端就会主动断开这个连接。
在这里插入图片描述

不过目前都是使用HTTPS协议以保证安全。后续还更新了HTTP2.0和HTTP3.0,HTTP/2.0协议是基于HTTPS的,更加安全,但是目前使用的网站不太多。
在这里插入图片描述

Web缓存器

一个Web缓存器,也叫代理服务器,可以将请求过的数据缓存下来,供再次使用。Client可以先向代理服务器请求,如果代理服务器没有缓存,代理服务器就将请求发到服务器并缓存服务器的响应。如果有缓存则直接发给Client。
在这里插入图片描述

Web缓存器一般是有局部ISP购买安装,使用Web缓存器可以大大减少请求响应时间以及局部ISP链接到主干网的通信量。由此也催生出了提供CDN(Content Distribution Network)内容分发网络服务的服务商。

面试常见问题

  • HTTP的报文
    • 请求报文:请求行(请求方法、URL、协议版本)、请求头、空行、实体体。
      • 常见请求头:Host,User-Agent
      • 常见请求方法:POST,DELETE,PUT,GET
    • 相应报文:状态行(协议版本、状态码、状态码描述)、响应头、空行、实体体。
      • 常见响应头:Date,Content-Type,Content-Length
      • 常见响应状态码:五个范围,1xx是提示收到,需要继续请求;2xx是成功;3xx是资源重定向;4xx是客户端错误;5xx是服务器错误
  • 四种请求方法各自作用和区别
    • GET用于请求数据,对服务器资源无影响,浏览器一般会缓存GET请求结果;请求参数在URL中,安全性比较低。多个参数用&隔开,URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。
    • POST用于提交数据,对服务器资源有影响,一般不会缓存;POST通过请求体传参,安全性较高。由于浏览器对URL有长度限制,所以GET请求数据大小限制严于POST请求。
    • PUT是向服务端发送数据,请求修改服务端资源;但是不会新增资源。
    • DELETE是请求删除服务端资源,
  • HTTP和HTTPS区别
    • HTTP1.1是明文传输,HTTPS有SSL加密,HTTP2.0是建立在HTTPS基础上的。
    • HTTPS先建立连接,然后服务端发送证书给客户端;确认信任该证书后服务端再要求客户端发送证书并验证(双向身份验证)

DNS服务

DNS提供IP地址查询服务,全球有非常多的DNS服务器,形成层次结构。
在这里插入图片描述
除了上述DNS服务器外,局域ISA中还会提供本地DNS服务器,本地DNS服务器会维护一个DNS缓存,Client需要查询网站IP时,先找本地DNS服务器,如果本地DNS缓存中没有,本地DNS服务器会去找根服务器,根服务器根据域名情况返回对应的DNS服务器IP,本地DNS服务器再找对应DNS查询具体网站IP,最终返回IP地址。

DDoS攻击的原理即:向DNS服务器发送大量DNS请求,使得正常的DNS请求无法得到回复。

Socket套接字

在这里插入图片描述
传输层向应用层提供的接口。
通信需要两个信息:

  • IP地址,用于查找目标终端
  • 端口号,用于查找通信的进程

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

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

相关文章

麒麟时间同步搭建chrony服务器

搭建chrony服务器 在本例中,kyserver01(172.16.200.10)作为客户端,同步服务端时间;kyserver02(172.16.200.11)作为服务端,提供时间同步服务。 配置服务端,修改以下内容…

学习threejs,通过SkinnedMesh来创建骨骼和蒙皮动画

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.SkinnedMesh 蒙皮网格…

HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)习惯推荐方案概述

一、习惯推荐是HarmonyOS学习用户的行为习惯后做出的主动预测推荐。 1.开发者将用户在应用/元服务内的使用行为向HarmonyOS共享,使得HarmonyOS可以基于共享的数据学习用户的行为习惯。 2.在HarmonyOS学习到用户的行为习惯后,会给用户推荐相应功能&#x…

华为防火墙技术基本概念学习笔记

1.防火墙概述 1.1防火墙与交换机、路由器对比 路由器与交换机的本质是转发,防火墙的本质是控制。 防火墙与路由器、交换机是有区别的。路由器用来连接不同的网络,通过路由协议保证互联互通,确保将报文转发到目的地;交换机则通常用来组建局域…

shell(5)字符串运算符和逻辑运算符

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…

帆软report参数栏宽度设置

最右边的竖杠被放大后在拉回来

Mysql-DQL语句

文章目录 DQL 语句简单查询查询表所有数据查询指定列 别名查询清除重复值查询结果参与运算 🏡作者主页:点击! 🤖Mysql专栏:点击! ⏰️创作时间:2024年11月16日11点39分 DQL 语句 DQL 语句数据…

MySQL数据库3——函数与约束

一.函数 1.字符串函数 MySQL中内置了很多字符串函数,常用的几个如下: 使用方法: SELECT 函数名(参数);注意:MySQL中的索引值即下标都是从1开始的。 2.数值函数 常见的数值函数如下: 使用方法: SELECT…

Vue.js 插槽 Slots 实际应用 最近重构项目的时候遇到的...

前端开发中 插槽 Slots 是一个重要的概念 我们可以查看一下vue.js的官方文档 https://cn.vuejs.org/guide/components/slots 类似于连接通道一样 可以把核心代码逻辑搬到另外的地方 做一个引用 而原先的地方可能并不能这样书写 对于这个概念我在vue的官方文档里面找到了…

5G 现网信令参数学习(3) - RrcSetup(2)

前一篇:5G 现网信令参数学习(3) - RrcSetup(1) 目录 1. rlf-TimersAndConstants 2. spCellConfigDedicated 2.1 initialDownlinkBWP 2.1.1 pdcch-Config 2.1.1.1 controlResourceSetToAddModList 2.1.1.2 searchSpacesToAddModList 2.1.2 pdsch-Config 2.1…

MySQL(5)【数据类型 —— 字符串类型】

阅读导航 引言一、char🎯基本语法🎯使用示例 二、varchar🎯基本语法🎯使用示例 三、char 和 varchar 比较四、日期和时间类型1. 基本概念2. 使用示例 五、enum 和 set🎯基本语法 引言 之前我们聊过MySQL中的数值类型&…

【蓝桥杯C/C++】翻转游戏:多种实现与解法解析

文章目录 💯题目💯问题分析解法一:减法法解法二:位运算解法解法三:逻辑非解法解法四:条件运算符解法解法五:数组映射法不同解法的比较 💯小结 💯题目 在蓝桥镇&#xff0…

深度学习之人脸检测

在目标检测领域可以划分为了人脸检测与通用目标检测,往往人脸这方面会有专门的算法(包括人脸检测、人脸识别、人脸其他属性的识别等等),并且和通用目标检测(识别)会有一定的差别,着主要来源于人…

docker busybox作为initContainers

一、上传到私有仓储 docker pull busybox:1.33.1 docker tag busybox:1.33.1 192.168.31.185/public/busybox:1.33.1 docker push 192.168.31.185/public/busybox:1.33.1 --- apiVersion: apps/v1 kind: Deploymentspec:containers:- env:- name: ASPNETCORE_ENVIRONMENTvalue…

Java实现两数交换

文章目录 实现两数交换方法一、(数组的方式进行交换)方法二、(对象的方式进行交换)总结 实现两数交换 实现两数交换,没有办法通过直接传递数字达到交换的结果,定义的int型变量是被存储在栈空间上的&#xf…

GOLANG+VUE后台管理系统

1.截图 2.后端工程截图 3.前端工程截图

Axure PR 9 穿梭框 设计交互

​大家好,我是大明同学。 这期内容,我们将深入探讨Axure中穿梭筛选宽元件设计与交互技巧。 穿梭筛选框元件 创建穿梭筛选框所需的元件 左穿梭筛选框 1.打开一个新的 RP 文件并在画布上打开 Page 1。 2.现在画布上创建一个背景,在元件库中…

【东莞石碣】戴尔R740服务器维修raid硬盘问题

1:石碣某塑料工厂下午报修一台戴尔R740服务器硬盘故障,催的还比较着急。 2:工程师经过跟用户确认故障的问题以及故障服务器型号和故障硬盘型号,产品和配件确认好后,公司仓库确认有该款硬盘现货,DELL 12T S…

介绍一下strncpy(c基础)

strncpy是strcpy的进阶版&#xff0c;都是把一个字符串赋值给另一个字符串。但不同的是strncpy可以选择复制几个字符&#xff08;可以完全替代strcpy&#xff09; 链接介绍一下strcpy函数&#xff08;c基础&#xff09;-CSDN博客 格式 #include<string.h> strncpy(ar…

【Pythonr入门第二讲】你好,世界

"Hello, World!" 是一种传统的编程入门示例&#xff0c;通常是程序员学习一门新编程语言时编写的第一个程序。这个程序的目标非常简单&#xff1a;在屏幕上输出 "Hello, World!" 这个字符串。尽管它非常简单&#xff0c;但具有重要的象征意义和实际价值。 …